Ive had this mech apart (a little project of mine to put an electronic speedo into an old mechanical speedo car), and I can confirm that its electronic, theres a sensor on the gearbox that sends electrical signals to a simple circuit board in the dash clocks housing which drives a motor which then advances both the mileometer, and by a process of rotating magnetic forces, moves the speedo needle.
If for example the mileometer reads as it should, but the speedo miss-reads I would have said that the speedo mech was getting stuck (it is extremely delicate with a tiny coil spring), but as your car seems to be effected on both counts I would first try swapping out the sensor on the gearbox. (Could equally also be the wiring from the speedo sensor [check for breakages or fraying of the insulation] or the circuit board mentioned above or the small electric motor). As far as I remember the reader is around £15. Hope this helps.