I'm pretty sure that the problem with all the failed tests is that the test machines use different word sizes for C data types such as "unsigned short" and "unsigned long" and that's what's causing all the failures.
I'm fairly sure you're on the right track there. I think you'll find that all of the failures have the following in common:
$Config{intsize} is 4
$Config{longsize} is 8
$Config{ivtype} is long
$Config{ivsize} is 8
(All of this can be gleaned from the tester's reports, btw.) The key thing might well be that a 'long' is 64 bits on these architectures.