Hi lauire
This is how I would approach the problem. The instrument requires power (12volts) and pulses from a sensor. Given the bench testing it's had if we assume your instrument is not faulty that leaves intermittent power connection, intermittent sensor connection or intermittent faulty sensor.
The sensor sends pulses to the speedo. When the speedo is first installed into a car it needs to be set or told how many pulses per mile to expect from the sensor. Imagine for the moment that this is set to say 10,000. The instrument uses this information in two ways. First when 10,000 pulses have arrived from the sensor, regardless of how long that took, it must increment the odometer by one mile. The second way is to asses the rate at which the pulses are arriving (measure there frequency). For example if it assesses that 10,000 pulses are arriving every 2 minutes that means the car is travelling one mile every 2 minutes or 30mph, so the speedo needle needs to be driven around to indicate 30 mph.
I would need a circuit diagram and the source code for the microprocessor in the speedo to determine exactly how it all works both of which I don't have so the rest is my best guess and that is just what it is a GUESS. If the 12 volt supply to the speedo is intermittent I would not expect it to affect the odometer reading, after all you don't want an electrically noisy ignition switch clocking up miles you have not done on your odometer every time you turn the ignition on. It would, however, effect the speed reading.
If the sensor or its connections were intermittent then that would affect both the miles per hour reading and the odometer.
Some of the things that I would do
1. make a note of the odometer reading and with the fault present drive the car a reasonably exact distance, say 20 miles, referring to a sat nav or your gps speedo. Then compare the known distance with the odometer reading. If they are different, to me this would suggest the sensor or its concoctions are at fault.
2. Remove the speedo. With the ignition switch on and with a digital voltmeter check the voltage arriving at the speedo plug. It should be pin 4 positive, pin 3 negative. Waggle the plug around whilst reading the meter to see if the voltage is intermittent.
You can get the pin out diagram from this link
https://www.jbugs.com/store/images/...Jqt18Ri3cKR17e4rlaA8GT8l9VtiHVsqWl4_qzN8If the 12v supply looks good I would be looking at the sensor and its wiring. On my car the sensor is fitted in the gearbox near the output shaft. I believe on some Morgans the sensor is fitted to the offside front wheel hub. Find your sensor, have a good look at the connection and perhaps follow the wiring back up to the Speedo plug.
I have built a very simple bench test rig for the VDO Speedo which enables you to power the instrument up and provide pulses which you can vary with a potentiometer such that you can vary the Speedo reading anywhere from about 6 mph to about 83 mph. If people would like I can put a separate post on how to put this together.
Hope all this stuff helps. Good luck.
Regards ZACH