Losing User Block Data

After 6 months of use for a bl2600 a customer is losing the data stored in the user block for settings for their system.

Anyone have any experience with this problem?

If it matters it may save and load the struct once a minute.

char Signature[4];
int Version; // detect stored version
TrayData trayConfig[2];
long TubePickup;
} Config;

//saving it
Config.Version = 2;
n = writeUserBlock(0, &Config, sizeof(Config));

//reading it
n = readUserBlock(&Config, 0, sizeof(Config));