For me this sounds like some status variablle creates an buffer overflow.
please check if you load any value from the storage and increment it.
if it fails after a looooong time and then after reset imediately fails And only fixes by reflash... this sounds like it.
i had a similar issue in the past with psoc. I did forget to clear variables after use. And i didnt have sanity checks for maximum values... maybe you count the recieved or sent packages to logfile. This gets picked up at boot maybe. And then boooooom buffer overflow....