Hello !
At first you should see if the odometer is right or wrong. If it is right, this means you've the good indicator for the bike's rear drive and mph.
To measure speed mechanical devices use a spinning disk with a magnet and all of this very close to another disk.
This create a torque in the non driven disk due to electro-magnetic forces. This torque is proportional to the speed of the incoming disk.
This torque is measured against a spring.
Now, you know the theory.
So what could be wrong ?
Spring had weakened so it takes less torque to move the dial indicator
Wear has taken it's toll and something is not as it used to be resulting in a wrong indicator.
Indicator was not well calibrated from beginning..
IMHO, what you see is a combination of the 3 factors.
Now, a couple of solutions :
Borrow a GPS and calibrate your speedo and put sticker on the glass. Be careful not to kill yourself on the road doing this. You can preset the sticker with a calculation of the speed given the RPM the gear ratio and the tire perimeter.
Search the web for calibration methods for Motometer dials and try to open the "thing" and calibrate it. Try not to destroy a now rare instrument.
I would opt for the first calibration method. After all you need to know is that you're UNDER the legal speed limit, not the actual speed....