Repeatedly changing an actor's animation to the same animation will reset it to the first frame.
I worked around this by creating a block to change the animation that accepts the animation name as an argument, and checks whether the actor's current animation is different from the requested animation. If they're different, it sets the animation to the requested animation, otherwise it leaves it alone.
I used that block instead of the "switch animation" block.
Otherwise, you'll need to manage your actor's state more carefully and switch animations only on state transitions.