I just tried exactly that sequence of steps, and it worked fine. BUT - I was able to reproduce your problem with a slight change.
When you create a WinSCP session, you are given a choice of protocols: SFTP, SCP, FTP and WebDAV (at least in my version of WinSCP). If you select “SCP”, the z/OS OpenSSH server will do character set encoding translation to EBCDIC, EVEN IF YOU EXPLICITLY REQUEST A BINARY TRANSFER. AFAIK, there is no way to override this.
If you switch the transfer protocol to SFTP, this forced translation will NOT happen.
To verify that the file was correctly transferred, you can use the “od” command to look at the first few bytes of the file. When I copied the file using SCP (which produces a broken file), it looks like this:
$ od -tx1 gzip-1.9-edc_b002.180703.tar | head -1
0000000000 4B 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CEE5213S The signal SIGPIPE was received.
$ tar -C test_gzip -xoUXf gzip-1.9-edc_b002.180703.tar
tar: checksum error on tape (got 4355, expected 0)
$
Switching to the sftp protocol in WinZIP, I get:
$ od -tx1 gzip-1.9-edc_b002.180703.tar | head -1
0000000000 2E 2F 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CEE5213S The signal SIGPIPE was received.
$ tar -C test_gzip -xoUXf gzip-1.9-edc_b002.180703.tar
$ ls test_gzip
CHANGES.ZOS
README
README.ZOS
VERSION.ZOS
bin
man
share
$
HTH,
– Jerry