Had a few tries with this, but couldn’t get it to work either. It might be because you’re already in Battle Stance, and the limitations in macro’s from vanilla/classic, didn’t have all the extra’s you have in retail now.
You might just have to get used to it being backwards, and shift to ignore the stance dance. Personally I have my stance dance linked to Taunt, which I press mid charge so I don’t use my taunt CD as I hit a mob/boss. And all stances bound to Shift+ 1-3 respectively.
Otherwise you can try this, it’s a two click, first charge, second to stance dance.
you can just use one macro to go into def stance after charge and keybind this to whatever key you have binded for charge, but include the shift modifier.
for example: charge on F, charge def macro on shift-F
this should do exactly what you want.