Problem with XC8, RX interrupt [PIC18F4550]
The UART receive flag is sticky meaning that until the condition that triggered the interrupt is removed, clearing the flag in software will not clear it in hardware. You must read the receive register to clear the flag or before the flag can be cleared. 

The following snipet is from the data sheet, interrupt section. 

RCIF: EUSART Receive Interrupt Flag bit

1 = The EUSART receive buffer, RCREG, is full (cleared when RCREG is read)

0 = The EUSART receive buffer is empty