Put everything you don't need interacting with your main characters on different layers. Just do it. The performance gains are real.
Make sure no images are stretched beyond 2048 pixels in any one dimension.
Crop your images as tightly as possible in image editor to get rid of as much extraneous Alpha pixels as possible
Use partial opacity sparingly, particularly on big images
Try to make everything you can think of a spawned item. When in doubt, spawn and destroy the original
Recycle particle systems by moving them to where you need them and restarting them instead of creating new ones
Edit sounds in audio editor so there's absolutely no clipping. OpenAL/cocos2D tries to reduce clipping and does so in a very costly manner
Don't be tempted to use the pitch change. It seems to be a live change and exasperates the clipping performance issue above. Record uniquely pitched sounds instead, and pick and play the ones you need
Preplay your sounds, with silent volume if need be, so they're cached before they need to be played. I don't know why this works, but it seems to make a big difference. I thought we were beyond the time in history when we needed to do things like this for audio on iOS.
Use Exponential eases on Colour changes with caution. They're costly. If at all possible, use Linear "eases". For colour changes, they're noticeably cheaper than others.
Push everything you need to store into central arrays. Use them as global storage. Faster and lighter and more reliable than Value and Box Containers.
Make everything you can into a Background image (not physics and not static/walls). Way less physics checking. If you can do this with things and not need to worry about them again, then you know these things are also suited to being put on another layer. So do that and forget about them.
Use broadcast and receive for every single thing you can think of. All the time. This way you can centralise everything and find anything and everything you need in little managers. Animation manager, Sprite Manager, Sound Manager, Creation Manager, etc.
Don't update labels frequently. They are unbelievably slow at any size that looks good.
@DingusDev You've programmed it to only check on start. You can plug the Add to Health Bar behavior to Quit Project behavior, like TutorialDoctor suggested. This makes it so when the health bar reaches 0, it will restart the game.
This is because in the Add to Health Bar behavior, there is a toggle to trigger when the health bar becomes empty (it should be on by default).