Speedo counts pulses from the front wheel. If its reading slow then its not getting enough pulses.
Assuming its not simply "shagged" then something is preventing the pulses reaching the speedo from the sender.
I say this cos mine's an import bike and it has a special gizmo hidden in the connector box under the tank that converts KM to Miles by transmitting 5 pulses out of every 8. The speedo reads only MPH but has an "MPH" sticker over the original "KPH". It reads up to 220MPH!
So , is this an import bike ?? does it have both MPH and KPH on the speedo (160 on the MPH scale and 220 on the KPH scale) or does it hava a simple single set of markings that goes up to about 220?
Could well be an import with a cheap or shagged "converter"
On the other hand, it could be simply a set of snapped lugs on the sender ferrite thing in the front wheel hub and its about to fail completely.