Resynchronizing audio in a variable framerate video with missing timing data
No matter how you slice it, this sounds like it's going to be painful if not impossible, mostly because you say the rate changes dynamically. My best suggestion would be to use a software like Adobe Premiere Pro and its "rate stretch" tool to manually adjust individual segments. I'm not aware of any software that can do that sort of thing automatically, mostly because you don't have another (non-corrupted) audio track to compare against. If you did (like, if you had also been recording on an external recorder), you could use Adobe Audition to sync them. 

Syncing two audio tracks of varying rates isn't too terribly hard, but syncing a video and audio track of different rates could prove very challenging.