Had a quick look at this and the "problem" seems to be with the systemmessages.xml file. There are carriagereturns after the value nodes eg.
<value>
[Portal:PortalName] New User Registration
</value>
These get loaded to the database where the carriagereturn is persisted. It shouldn't be a problem as they're in the bodytext, but as they are the first characters after the headers, maybe thats the source of your error. I tried to fire together a sql statement to replace CR with CRLF (replace(MessageValue,char(10),char(13)+char(10)) ), but as it's a ntext field it needs to be done via UPDATETEXT, and I don't have the time to hack together a solution currently (its 2am here)
Could you try editing the FormatSystemMessage function in systemmessagesdb.vb and adding the following just before the Return strMessageValue line, to see if it works. You'll have to recompile of course.
strMessageValue = Replace(strMessageValue,vbcr,vbcrlf)
Cathal