yo para los errores de la usart utilizo el siguiente programa:
supongo que por esto nunca he tenido estos problemas.
;<<<<<<<<<<<<<<<<<<<<------SUBPROGRAMA PARA ESPERA DE CARACTER Y CORRECTOR DE ERRORES----->>>>>>>>>>>>>
ERR_USART btfss PIR1,RCIF ;espera al proximo caracter
goto ERR_USART
btfsc RCSTA,OERR
call BORR_ERR ;Error de Sobreescritura
btfsc RCSTA,FERR
call BORR_ERR ;Error de Trama
bcf PIR1,RCIF ;borra el flag de interrupcion por caracter recivido
return
BORR_ERR bcf RCSTA,CREN ;deshabilita recepcion usart
movf RCREG,w
movf RCREG,w
movf RCREG,w
bsf RCSTA,CREN ;habilita recepcion usart
return