Hi,
The PIC is to slow to manage the seriel communication and the LCD-work in software !
You have to use an hardware-UART !
Try to use also an 32-byte-ringbuffer for the received data (Interrupt-service-routine in assembler).
I realized the same with an I2C-communication on a 16F872. The PIC is to big, but it is one of our "favorites".
Bookmarks