Probably not a dirty sensor, since it is magnetic. But, it does sound like a faulty ABS sensor, or sensor wiring. Also, check that it isn't loose.
+1.
On an 11 year old bike I would at least open and remake every connector. The false speed reading suggests the ECU thinks the sensor is reading pulses from the wheel indentations (which is what happens when the wheel rotates) but actually it could be the sensor connectors making/breaking rapidly, or even picking up some electrical noise from somewhere.