Files transferred off the mainframe in ASCII mode and not binary mode will cause packed data to be extracted incorrectly. This is expected behavior due to z/OS's EBCDIC character set vs Window's and Linux's ASCII character set. Packed data exists as hexadecimal values, so a binary transfer is required to maintain packed values.
As an example, an asterisk is hex value 5C in EBCDIC but a hex value 2A in ASCII. Picking up that character on z/OS as packed data yields +5 but on Windows, that same character would be an invalid packed value. When doing the binary transfer, the input source would automatically switch from an asterisk to a backslash, since a backslash is ASCII's 5C hex value equivalent. While the file may appear different in a text editor on Windows and Linux, the binary transfer allows the expected packed +5 value to be extracted.