Hi!
MPLAB is a great simulator for checking loop execution times and so on. It has it's bad sides also but i guess not here.
Anyway, i wanted to point out that if your xtal freq.=4MHz (usual), your 100mS delay loop actually delays much less, abot 1,4 mS!!! This will most probably explain veird LCD behaviour since it's a relatively slow device. Datasheets indicate that user should poll the BUSY flag before sending any kind of data to screen. In practice, it is rearely done, usually one would simply wait long enough to be at the safe side and then send another data/cmd byte.
So i added a routine that would delay some time at mentioned crystal freq. If your clock is slower then it simply takes some more time and that's all. Everything should work. It it's faster, you must add delay time.
I can not possibly comment 0-s or other chars at end of lines since i am not familiar with your enviroment. Still i hope you got the general idea (make it slower or poll busy flag).
Btw, what is your xtal frequency and what about your programming language?
Does it really have no means for measuring loop times?

Drop me a mail if anything remains unclear
/Felch