I don't think this is a gearing issue. I was mulling over all the possible explanations for this. It's important to note this is a remanufactured cluster, so it hasn't done any miles since being rebuilt until I installed it.
I'm pretty sure the odometer is reading accurately, and it's just the speedo that's wrong. This says to me that either there is an issue with the speedo clockspring, or an issue with the position of the needle on its axle.
Fortunately, I think this is easy to test for. If the needle is wrong, then the error should be constant, i.e. I'm reading ~14km/h under on the speedo at all times, so at 60 it's 46, and at 100 I would expect about 86. If that holds true, then the needle just has to be repositioned.
If it's a clockspring issue, then the error should be a ratio of the speed, so it reads 46 at 60, and 77 at 100.
I'll do some tests tomorrow to check if the odometer is correct, but I've only put 19km on it, according to the odometer, and google maps agrees with that number, and in fact the error is on the high side rather than the low side, like the speedo.