Oh, the hours I've spent stepping through a program with software delays and serial I/O on PIC16F- and C-84's. If you use the special function register watch, you can watch a message get spelled out as it goes through the W reg, but it might be easier to branch to a halt at a known location when you get the expected result. This avoids string-sending simultions.
The other place where simulation produces Megatorrs of vacuum is on inputs - try to get the timing to coincide with what you want for your event ! The newer IDE works a little smoother than the first simulators (even the one for DOS

).