Hi geork.
In the effect node, target="any" should read target="all".
In the multipliers node, <movement-speed value=.../> should be <move-speed .../>
Multipliers of 0 are not recommended, units will freeze up for longer than expected due the nature of how the game works, obviously this is not ideal and completely freezing a unit for a set time would be nice, but for now you'll have to live with it.
Reducing attack-range is also not recommended, a unit with range = 1 will end up with fractional range and will be a close as he can be and still not attack...
Here's a working version with a few things changed, (because they 'stack' you will still get the freeze up problem with this, it'll just take a little while to build up).
<effect name="shred" bias="detrimental" stacking="stack" target="all" chance="100.0" duration="3" image="image/battle_machine.bmp">
<static-modifiers>
<hp-regeneration value="-20"/>
</static-modifiers>
<multipliers>
<move-speed value="0.5"/>
<attack-speed value="0.5" />
<attack-strength value="0.5"/>
</multipliers>
<recourse-effects>
<effect name="stand" bias="detrimental" stacking="stack" target="all" chance="100.0" duration="3" image="image/battle_machine.bmp">
<static-modifiers>
</static-modifiers>
<multipliers>
<move-speed value="0.5"/>
<attack-speed value="0.5" />
<attack-strength value="0.5"/>
</multipliers>
</effect>
</recourse-effects>
</effect>
</effects>