Have you checked the wiring, the speed sensor is at the top back of the gearbox (manual) or top of cvt box. You can check the wiring is all good and the sensor is located with a mounting bolt. You might also take out the instrument pod, which I imagine is a PITA and check the free movement within the speedo. 2nd hand instruments also appear regularly on e-bay, so that would save you cash if the speedo itself is faulty.
On bikes, the speedo is vulnerable to hot/cold, and if the pin is not tight can catch, so as a first remedy you could give it a good whack and see if that helps!