Fijate que no todas las Baudrates tienen la misma tolerancia a errores, creo que 9600 es la mas tolerante o por lo menos una de las menos exigentes, ademas por mas que no lo creas el ajuste de frecuencia siempre va a producir errores en % muy bajos pero en fin, lo que se pone mas complicado a altas velocidades.
Primero que nada si estas haciendo esto en un protoboard o algo asi donde las interferencias son un dolor de cabeza olvidate, a estas velocidades nesecitas cancelar esas variables.
Segundo seria bueno que pruebes el 16F628 el patillaje es exactamente igual, es mas barato y tiene USART !!! me canse de usar rs232 por soft cuando pase a este pic me olvide de un monton de problemas con los delays los nops.
Si podes postear algun ezquema de tu diseño y algo del cod. eso ayudaria, no te olvides lo del proto, para cosas como esta usar un proto haveces no siempre trae problemas.