Multiple bytes of data not being read from PIC18F46K80
Best way is to use the function defined in PIC18 peripheral library for UART.

char RxBuffer[5];
OpenUART2( UART_EN | UART_NO_PAR_8BIT | UART_1STOPBIT, UART_RX_ENABLE | UART_TX_ENABLE, (pbFreq/16/BAUDRATE)-1);
while(1)
{
    if((U2STAbits.URXDA)!=0)
    {
        getsUART2(5,RxBuffer , 123);
        U2STAbits.URXDA = 0;
        U2STAbits.OERR = 0; 
    }
    putsUART2(RxBuffer);
 }