Is there any in and out play in the input shaft? if there is more than the tiniest amount then the rotating weight is likely working its way forward and contacting that aluminum cup that the needle is attached to, every time it touches it will bounce forward quite a bit.
The pictures are not very clear so I cannot tell what the issue is but that would be my first guess, if that is the problem you can take a wooden dowel and use it as a punch and gently tap it down, do not deform the pinhole on the shaft (that is why I use a wooden dowel and not something metal) but don't tap it so much that it is tight, you want just the slightest fore to aft play when you are done.
If the input hole is rounded out then I would think you would need to find another speedo for parts or a complete replacement, I have seen quite a few speedometers and never seen one rounded out but I guess it is possible.