Is that the same on both machines ?
If not, then the 2 machines have different endianness, and that is more likely the source of your problems.
I've been bitten by this in the past with long long values - though I'm not sure it was precisely the same as your case.
On a little-endian machine, the "%u" format run on a long long value will work fine iff the "long long" value fits into a "long". But that doesn't hold on a big-endian machine, and that's where my code was coming unstuck.
The ivsize-ptrsize difference you noticed is normal for a 64-bit integer perl on a 32-bit architecture and should not be the source of the problem.