If we set the Run command (let it be so dull, heh):
xterm -e /home/me/sh1 $2 $3 "%s" and press F5, all we get in xterm is: %s
xterm runs the command in a shell, which substitutes $2 and $3 with nothing since they are undefined.
The other problems may be variations of this I suspect or of the several levels of command encoding/decoding that occur.