Два варианта:
1. EECON1.EEPGD используется? Если есть хоть одна возможность для самопрограммирования, Вы ее не поборете. Кроме того, у Вас в данных может быть "волшебная" комбинация
Код
BSF EECON1, WREN
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR
Если такое есть в данных, переведите их на retlw
2. Физика процесса: порог BOR опустился ниже 4В, например до заявленных минимальных 3.7, в то время как работа осциллятора уже не гарантирована. В принципе, это можно трактовать как брак. Все дело в цене вопроса. Лечение - вешать внешний монитор питания.
ЗЫ я так понял, BOR включен?