To make the sniper stay put in one place, you have a number of alternatives;
doStop sniper (stops sniper, a bit of a hassle to make him move again though)
sniper
stop TRUE (I think the same as the "Halt" command a player can issue. To make them move again, just use <unit> stop FALSE.)
or, if you really can't make the bastard stop moving :
sniper
DisableAI "Move"
However, there's really no way to enable the AI again, and I hear the disableAI stops working if you save the game and then load it again.
And then, to make the sniper lie down constantly :
sniper
SetUnitPos "Down"
So. Just add something like : doStop sniper; sniper setUnitPost "down"; somewhere in your script, and the bugger will be lying down and staying put forever.
You might want to experiment with the weapons though : I don't know what the AI firing distance of the WW2 mod sniper rifles are. If you still can't get it to work, try giving them a modern rifle and see if that's the problem.
Good luck!
Wolfrug out.