I too have encountered the the "dysfunctional speedo" in my life with my 1987 BMW K100RS. At 51,200 miles, the speedo quit on me. Thanks to your superb pages, I was convinced that I knew the answer to the problem and proceeded to pull the speedo off for repair.
Imagine my surprise that when I opened up the case to the speedo, it was not only seriously corroded, but corroded to the point where two lightbulb sockets were completely rusted out, pins were corroded beyond any repair, and (tragically funny) a small shower of corrosion all but poured out of the speedo assembly!
With a big sigh, I called the BMW dealer near me to find out how much a new speedo would cost. $650. Uninstalled.
Now I don't know about you, but that is a huge hole to blow into my wallet. I needed a fix that would be cheap, easy to install, and would be accurate enough to hold me over until I can afford to buy the new unit. Some of you may already be scoffing at my answer.
I installed a digital Trek bicycle speedometer to my K100. In fact the whole assembly time to install the unit required less than 20 minutes. The Trek unit needed some modification to work. I ground the metal casing off of the small magnet and glued the magnet to the Rotor Carrier (front wheel) with one drop of Krazy Glue. I also ground off the plastic mounting bracket on the speedo sensor and taped it in place on the left front fork. The spacing between the magnet and the sensor needs to be around 1/8 inch, so the tape helped in positioning (I later used hot melt glue to hold it in place). I ran the speedo wire up the fork, used two plastic lock ties to keep the wire from flapping in the wind, and attached the Digital readout to the speedo face with a bit of sticky backed velcro.
No, this isn't a Bimmerphile quality repair at all. And no, it isn't without problems. At 80 mph (about 4600 rpm's in top gear), the speedo delivers false sensor readings: the magnet is rotating so fast that the sensor fails to pick up with every rotation. At any speed below 80, the speedo is dead accurate.
For a total outlay of $23, I now have a fully functioning digital speedometer on my BMW. The speedo delivers MPH, Time, average speed, max speed, trip odometer, and normal odometer as well as a clock. So far I have put just under 2000 miles onto the unit. It hasn't come loose, lost a beat, or ceased functioning in any way. The magnet has not affected wheel balance in any discernible way. Better still, this unit is waterproof. If you can't afford a whole new unit for you bike, this is a worthy option for a fix. At the very least, you will know how far you have traveled which sure beats guessing how much fuel is in your tank after 2 hours of riding.
Hope this helps someone else on a budget.