What a cool animation! It required so much attention to detail!
Here are the tips I have to help fix the overlap and gaps…
Remove the extra background from all the sprites using the crop tool. This means when .scale is used it is truly scaling only the sprite and not the any extra space in the sprite’s canvas. I have attached a screenshot of the crop tool in the animation tab.
To help troubleshoot, I removed the draw loop for a bit and only put in the drawSprite block so that I could first address the layering of the fences at the very beginning. With all the fences cropped, I changed all the scales to 1 and the layering is mostly gone but some adjustment might need to be made in scaling and space for effect. Here is my attempt to fix layering.
The gaps during animation should be easier to fix with the sprites cropped. I would also try changing the World frameRate to 1 as you are animating to make it easier to fix the gaps during the animation after the drawLoop is returned.