I had to read the docs several time to understand.
In the end it may be a read-only problem, but the way IPO is booting is more complex.
First it looks for a IP500v2.bin file. It does this in /primary, NVRAM, /backup, opt/primary, opt/backup, BOOTP.
Depending on where it founds a IP500v2.bin it will take a config file from the same location if possible. It looks if a cfg is present and valid. If not, NVRAM is used or a default config. It does not look in /backup or optional card when booted from system SD card. The order is SD card location of loaded BIN, then NVRAM.
If NVRAM had to be used, it tries to copy it to /primary and raise an alarm.
This means, if a BIN is found in /primary but the CFG is not present or not valid, it uses the CFG from NVRAM and copies it over to /primary and raise an alarm.
Since the BIN is already there and static it can boot from it, but because of problems with the SD card handling it may have problems to properly write the CFG and hence cannot use it for next boot.
But what is the cause? The card, the writer i.e. the v2 unit or a firmware problem?
And to get it fixed with recreating the card, would mean the safest way is:
Take a backup with manager. Eject the card and copy the /dynamic folder. Format the card with manager, and recreate it. Restore the /dynamic folder. But not the config. Just insert the card and reboot (or wait for midnight). The system will copy the config to /primary. Let the system do it to avoid issues with access rights.