Oh yeah,

The PIC is not fast enough to receive several bytes with software.
You have to use assemblercode inside an Interrupt-Routine with a USART on the PIC.

Tip: Counting signals is managed through Counters or Timers and you don't need Interrupts.