Hola xootraoox, has comprobado que no hayas dejado el fuse LVP activo?, te comento esto pq a mi hace tiempo con un 16F876 me paso algo parecido, el programa se ejecutaba bien, pero habia en ciertos momentos que se me quedaba el pic bloqueado y al leer el programa del pic y compararlo con el Hex, me daba que el programa habia cambiado a partir de cierta posicion de memoria, al final resulto ser que tenia el fuse LVP activo y se ve que por algun problema de ruido en la placa o algo por el estilo, ya que no cosegui descurbirlo, el micro entraba en modo programación y claro se me borraba el programa que tenia metido a partir de la posición en que se quedo ejecutando y entró en modo programación. Desactivando ese fuse se soluciono, puesto que para programarlo el micro tiene que detectar los 13v.
Un saludo.