Not sure what I did after all this, but it appears to work now. I had backed up the data file and tried replacing the active corrupted file with it several times but I guess through sheer stubborness and my willingness to endure more disappointing results it finally worked.