Hmm.
Well, looking at your code, I can see no reason why it doesn't work.
For example, place a text object on the layout and use "Always" to display both the crouchingVar and the current animation name of Link, and you'll see that the states are all as you'd expect when pressing the buttons, except for the crouchAttack animation, which doesn't show up at all.
I think that it might be a quirk with Construct.
To prove this, change the
+ link: Value 'crouchingVar' Equal to 1
-> link: Set animation to "crouchAttack"
to
+ link: Value 'crouchingVar' Equal to 1
-> link: Set animation to "attacking"
so that it's the same as when 'crouchingVar' equals 0, just to prove that the conditions work.
It seems that the "crouchAttack" animation just won't play.
Try deleting that animation, and then set it up again.
Construct can be like this sometimes.
Krush.