You could try:
zcat -f broken_postgres.dump.gz
From there, you might need to manually inspect the outputs and paste them together in a sane way.
If it's worth your time, and you're pretty handy with C: checkout the zlib, and hack the executable code to give you debug info about what's up with the broken gz file. http://zlib.net/
The Gzip format RFC spec might useful at this point too: http://www.gzip.org/zlib/rfc-gzip.html#file-format
There are probably other people who have written tools that do something similar though.