Hello Andrew,
As you indicate that a read back is working fine before a power cycle, I suspect that the driver is not mapped to flash memory but to RAM.
You may check which address your data is written to.
Then, by matching it to the memory map, you will see if it is actual flash.
Alban.