It's impossible to understand what's going on in your code. But you are definitely using "Trigger once" wrong. You should never use it with objects that have multiple instances - this may cause nasty bugs which are very difficult to track.
Don't use "Trigger once" in loops or as a single condition in a sub-event. Don't use it as the first condition in an event. In fact, better don't use at all unless you have a clear understanding of how it works.
If you want, for example, to change the animation only once, use "Animation is NOT playing" condition instead of "Trigger once".