This is also a problem in E30's. Apparently the grease that is on the gears that turns the odometer over eats away at the gears over time and they strip. Your best bet would be to remove the gauge cluster, remove the speedometer(which should have the odometer inside it) and replace it with a used one. Turning the gears manually on the new/used one (yes, you can do that) is easy and can be set to the same milage as the broken one.