Recepcion de datos y delays van bastante mal..
Agregale ERRORS al use RS232
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N, ERRORS)
Asi cuando detecta un error ( como el de sobreescritura), directamente se encarga el codigo dado por el compilador de borrarlo.
Pero tenes que partir de que si usas alguna recepcion de datos, que sea por interrupcion si no queres tener problemas.