Animation out of sync?

Your problem might be that when you leave the screen the oniginal animation is not stopped/deleted so when you leave and then reload the screen a new animation is created that clashes with the already running animation(s).
Therefore infinite animations shouldn’t be created when a screen loads but at the beginning of the program, so you should start them by events in the initial actions (or a top-layer) ‘screen’ instead. That way they’re created only once, won’t accumulate, and will run infinitely in the background no matter if you change a screen: Trouble with anim
(In case of temporary screens where the animation targets get deleted, extra care should be taken te delete the animations together with the closed screens: Temporary Screen with an infinite loop animation crashes when deleted - #5 by CodeGrue )