Inconsistent walking animation

I'm trying to utilize state changing tiles to make my player animation change, but sometimes it works, and most of the time it doesn't. I don't know what would be causing the inconsistency, but most of the time, when changing states via tile, the animation doesn't update past the first frame, but the tile script suggests that it should:
Code:
 LDX player1_object
    GetCurrentActionType player1_object
	CMP #$05 ;; A: the "LongGrass" walking state.
			;; if we're already in that state, don't change to it.
			;; not only is it redundant, it'll start the animation over
			;; and get locked into frame one of animation.
			
    BEQ +
	CMP #$04 ;Check if "LongGrass" idle
	BEQ +
	;change player state to 5
	ChangeObjectState #$05, #$02
+
I use this same code in the tiles around the "long grass" area, but the states pointing back to the standard "idle" and "walk" states (#$00 & #$01). These tiles seem to show the problem more than the actual "long grass" tiles.

Sorry if this is confusing, I hope this animation helps, though I know it's not always clear when the animation sticks:
https://i.imgur.com/9SikWdj.gif

I added a graphic glitch to the "walk left" animation to make sure that it was getting stuck on the walking animation rather than the idle, since their first frames are identical. So that is what's going on there.

And here's the collision map since my experimenting has made the tile types not-visually-cohesive. 0C changes to state 5 (long grass) and 0D changes to state 1(normal walk):
https://i.imgur.com/8uIOEOj.png
 
Top Bottom