Tar is using the size returned by stat() for storing binary files. This size is smaller than the actual file, which results in a corrupted tar archive.
The Perl Archive::Tar can currently store VMS binary files in a TAR archive.
http://codeverge.com/perl.perl5.porters/-patch-33971-archive-tar-was-building-corr/197988