I've done video overlay in an application which required polling during the data display. If you have a spare FSR available, insert:
btfsc INTCONx,RCIF ; I forget which INTCON it's in
movff RCREG,POSTINC2 ; Or whichever FSR is free
at least once every 16 lines (it may be most convenient to do it every line). Only three cycles per line. If you do not have a spare FSR available, but your display code is expanded out rather than looped, then at least once every sixteen lines you need to use:
movff INTCONx,SerStatus+N ; N=0 for the first one, 1 for the next, etc.
... and then (not necessarily immediately)
at a cost of three cycles on one line and two on another; at the end of the display:
movlw (SerData & 255)
; W will now hold number of bytes received
; Data will be in SerData+0 to SerData+(W-1)
The trick is not to worry about figuring out what to do with data while showing the display. Just throw it someplace and sort it out later.