Try to use a software receive buffer. I use the example below. The isr will overwrite the last byte of rs232buffer[] if the sofware buffer is full. You should do the buffer reading in your "main" code ...
Make sure you use the right programmer with the right settings! You probably use 16F84 settings. The programmer only programs the first part of your code. The result is a constantly restarting F877!
...