Please forbear while I suggest a few things that might or might not be obvious to you:
Perhaps the .tar.gz filename lies, perhaps it's just a .tar file. Or really a .tar.bz2 file.
If you're comfortable with looking at bits of binary files, I would suggest dumping the first 512 bytes with 'dd bs=512 count=1 < filename.tar.gz | od -t c' and verifying that it really is a gzip file. A gzip file, for example, typically contains the name of the uncompressed file in the first few bytes of the compressed file.
If the file is truly corrupted, recovering data is nearly impossible, since errors in decompression affect every subsequent byte of output -- the decompression basically goes off the rails. That said, for the particular case of FTP ASCII transfers of gzip files, I have had success in recovering some data (see http://bukys.com/services/recovery/
), but it basically requires some custom coding, so it's a consulting project not a turnkey operation, so you're probably not interested unless this data is extremely critical to you.
I have also seen cases where a Mac decompressor complains after a file reaches a certain size (perhaps it was at 3GB or 4GB). But if that were the problem, just a "tar ztv" would have shown partial success before failing later. If decompression fails immediately, with no output at all, that suggests to me that the file is corrupted or misidentified from the near the beginning. One more stupid question: if you run the "file" command, e.g "file filename.tar.gz", what does it identify it as?