I used to get power failure header damage on a regular basis, and wrote my own recovery routines, using low level file commands. It's been a while, so I'm not prepared to write the step-by-step for you, but it can be done.
My method was a bit different than trying to correct the file length value in the header. You have to find your way past the header to the beginning of your first record and know the structure of the file. If you're interested in that approach I'll track down and send you some code that you could start with. And as Rick suggested, by all means, get a power supply. Good luck!