I think what may have happened is that your file "lost" some of the internal pointers which are part of FTM's relational database.
You seemed to have confirmed this when you report you can manually correct them (reset the pointers).
After you have done this, I would again suggest compacting as one of the main (unpublished) things compacting does, is forces the database to be re-indexed and this resets the internal data pointers. Bit like strightening bent street signs so they point down the right street :-)
The database used in FTM 2008 and above is relational not flat field like it was in FTM 16 and earlier and seems to be far more robust, but things can still go wrong.
I would also be investigationg why your computer crashed in the first place and of course have good backups