Sounds like buggy code.
This is pure speculation, but it could be due to how the flash memory is written. Flash stores bits in page blocks. There is no way to partially write to flash memory. Even if a single variable needs to get stored in persistent memory, a whole page (like 4096 bits) must be retrieved, old values copied, new values added or changed, and the whole page gets written back into Flash. If something like power is lost while a page is getting written it is very possible for the last bits to get missed. If these bits are critical it can ruin the page and that can do stuff like mess up your settings. For a dev, there are ways around this in software by adding a redundant page in flash so that old, new, and changing are always on their own pages. If there is a problem the software knows to retrieve the redundant page. These are the types of features that do not make it into cheap project parts printers, and some expensive ones too.