Try swapping out the memory with known good stuff.
Windows checks the registry after it's loaded into memory at every boot. If there are memory errors, it sees them as registry errors and tries to repair them.
Memory issues may well be the root problem.
MAX