All the BMW speedometers have a less than stellar reputation for longevity and consistency. Usually it is the speedometer part that stops working while the odometer marches on. It is likely that a gear is either loose/slipping on its shaft that is driving the odometer gearset - though I do not know how to fix it myself. There are various places one can send the unit in to be repaired - typically expect ~$200 bill for it. Some places, like Palo Alto Speedo, are running about a 3 week turnaround time. Some other shops I've checked are a little faster, but I don't know the quality of their work (yet).