I think the issue is that the crouching animation is playing WHENEVER the arrow key is down and the uppercut, only when W is pressed.
So what ends up happening is that the crouching animation is played, then for a brief moment an attempt is made to play the uppercut animation when W is pressed, but because the down arrow is continuously pressed, the crouching animation takes precedence.
I think that you need to set a boolean variable when you press W to indicate that an attack has started and while that variable is true don't play the crouching animation, then it won't step over the uppercut one.
You will need another event to know when the uppercut is complete, so you can reset the boolean and allow the crouching animation to play normally.