Take a look at WIZ then. If you use the RAD, all you do is click on the UART (or two if the PIC has them), drag a line between the TX and RX and the pins on the PIC (if they are not fixed in hardware) then fill in the parameters box to set the Baud rate. It even has fully buffered transmit and receive queues so you can let the UART function run in the background while your program does somethng else. You can also use a 'real time' serial interface or timed stimulus files. It has similar abilities for other peripherals. The really nice thing is the debugger speed, my i7 machine can simulate a program in the debugger at an equivalent PIC clock speed of about 30MHz so in most cases the simulation can run faster than real hardware. I have another "up to date" PIC simulator here which puts me to sleep it's so slow!
If you don't use the RAD, it still works as a full featured C compiler and assembler with all the debugging and simulation facilities. It's one of the few simulators that can run multiple PIC programs in different PICs and trace how they interact with each other. For example, using two PICs, each running their own programs, it could show one sending data out through it's UART and the other one would show it being received.
Brian.