This is not the source of your problems (probably), but why do you use truecrypt on Linux using a Linux FS? That doesn't really make sense unless you want to use the hidden container feature (plausible deniability). If you don't need that, LUKS / cryptsetup would be more appropriate. And even if you do I would use the newer veracrypt. Btw, you can also mount both types with a recent enough cryptsetup / dm-crypt, don't know about creation, though.
For your problem: I would first check memory using memtest86+. For memtest86+ you need to boot a BIOS/MBR grub (i.e. select legacy boot).
Also, for copying the data, I would use rsync -a -HAX -hP <src> <dest>. Then you can check the data with rsync -a -HAX -hPnc <src> <dest>. The "c" means use CRCs and the "n" don't copy, rsync will list the files that differ.
I tried veracrypt 1.6 and veracrypt 1.7, there is same issue. In fact, I used cryptsetup ever on arm board, but I don't do fully test for crypesetup. I used truecrypt here just because I have used it on Linux or Windows for more than 7 years, it runs very well, I think it's very stable.
I'll try your methods to determine the cause.
Thanks very much.
I have done memory test about 2 hours, it passed and no erros occured.
So I refunded it to merchant, and merchant send me a new one. I installed same OS and software, then did same test, both truecrypt 7.1a and veracrypt 1.17 works well on new device. I have tested it for 72 hours.
Maybe the old product has hardware defect.