I didn't know you could "set" a substr()?
...
Oh yeh, that's because you can't.

Try this instead of the "Message[s].substr(0,1) = ..." line:
code:
Message[s] = "[c=4]"+Message[s].charAt(0)+"[/c]"+Message[s].substr(1);
I more like to use charAt(0) instead of substr(0,1) because it's shorter and easier to understand.

(the first character uh!

)
However you should note that this will NOT work on words after a new-line or tab character. I'll see if I can do the same with replace combined with a function...