If you want to insert $chr(32) you'll need to use $+ to make it:
Code:
if (($left($1,1) == !) && ($right($gettok($1-,1,35),3) == ++ $+ $chr(32))) {

Otherwise it will think you want two spaces.

As for your problem... Your first example returns ++ because the space behind it gets removed when echoing it back to you. But in the second example it's matched inside the script and then the space remains. It's one of those caveats you have to remember.