Since it is static background.... I suggest having each object as sprites and make the repeating images as tiled background.
For example:
Sprites:
*Castle Body - Make only 1 body. (Mirror it on the upper part to save memory.)
*Castle Head - Make 1 with 2 animations. First animation : Red , Second Animation : Blue.
*Trees - You can make 2 or you can have only one and just duplicate & tilt the one in-front for the background tree.
*Mountains & Hills : You can just duplicate them all to different instances and use the z-order, opacity & size to make and effect like that (with the same single sprite image).
*Clouds - Have one in sprite and manipulate opacity & size to make that effect, just make sure to have the Blue Sky Tiled BG.
*etc... You get the idea.
TiledBackground:
*Blue Sky (2x2) Blue Color
*etc... You get the idea.
In C2 games, Backgrounds like these are not made in a single image, they are from separate images (sprites / tiledbackground) that are repeated, duplicated, rotated, resized, faded, & tiled to optimize the game as much as possible. So I hope you get the idea <img src="{SMILIES_PATH}/icon_e_wink.gif" alt=";)" title="Wink"> .
Reference : https://www.scirra.com/blog/112/remembe ... our-memory