Some Questions about the Veracrypt hash functions
These hash functions are also used for the key derivation function. Both are roughly equally secure for a KDF in the sense of collision resistance etc., but SHA512 offers a bit more security as countermeasure for custom hardware attacks, since the memory requirements are a higher than for SHA256 and custom hardware to crack the passwords like FPGAs is more expensive. So there is a small advantage using SHA512, even if the output is truncated at the end.
Although I can’t explain VeraCrypt’s selection of hash algorithms, it is not a bad idea to offer a variety of functions as a countermeasure to custom hardware attacks with ASICs, as these chips must be produced for each algorithm. This could also be a reason for using different SHA variants.
I agree with you, that Argon2, scrypt, bcrypt would be better than PBKDF2, which remains vulnerable to custom hardware attacks even at high iterations. 
But VeraCrypt took the poor design of TrueCrypt, where all possible combinations of key derivation are tested in a trial and error process (see chapter 3 of VeraCrypt encryption scheme). This limits the amount of time for all key derivation functions (see Bill Cox's Responses). So if it would test PBKDF2, Argon2 and scrypt in sequence, the latency would increase drastically.
I don’t know if or why VeraCrypt is GPU resistant. hashcat supports GPUs to crack VeraCrypt volumes, but I don’t know anything about the performance.