Have you always had the same front tire on it? I was thinking maybe your noted rpm/mph disparity could be caused by a wearing tire, but reason tells me a tire with a slightly smaller diameter due to wear would make more rotations per mile than a larger tire, resulting in a higher mph reading compared to engine rpm's, so that can't be it since you're now seeing a lower mph reading compared with the same engine rpm. That was probably the worst sentence I've ever written, by the way.
Did you maybe put a new/different front tire on it?
Engine rpm's are engine rpm's and I would imagine the disparity is caused by something associated with your front tire/speedometer drive/speedometer. The KLR speedometer isn't exactly a high-tech piece of engineering.