Alain,

I understand that at completion of the write cycle, the WR
bit is cleared in hardware and the EEPROM Interrupt Flag bit
(EEIF) is set. The user may either enable this interrupt
or poll the WR bit. There is also a third barbarous method which
is just wait 10 ms.

In your post you say that PbP uses the polling method. This
should be ok if the microcontroller hardware has no bug.

Can you put a "PAUSE 10" after each WRITE in your code?
(10 ms pause).

Best regards,

Luciano