gzrecover foo.tar.gz does not generate a fixed gz file. It will generate a file called foo.tar.recovered which is not a gz file.
If you want to make a new gz file you will have to do something like
gzrecover foo.tar.gz mv foo.tar.recover new-foo.tar gzip new-foo.tar
Now you have new-foo.tar.gz which should be OK.
gzrecover foo.tar.gz does not generate a fixed gz file. It will generate a file called foo.tar.recovered which is not a gz file.
If you want to make a new gz file you will have to do something like
gzrecover foo.tar.gz
mv foo.tar.recover new-foo.tar
gzip new-foo.tar
Now you have new-foo.tar.gz which should be OK.