You need to implement a interrupt driven data reception mechanism with a FIFO queue.
The MCU to jumps to the ISR (interrupt service routine) when a byte is received from usart. It puts them in a queue (just like we stand in a queue) the end of the queue is where ISR puts data. And the first person in the queue is which MCU will read first. MCU can also query how many bytes are waiting in queue.
Have you put a 8MHz crystal on it? How have you configured the CONFIG bits? I mean the PLL and the clock sources? This is very important to write timing sensetive code like that of USART.
Show me picture of your setup and the configuration bits settings.