The symptoms are a off though, as I'm getting within 5% over my whole speed range.
That does not make sense for an overflow problem. Is the get count function synced to the speed too? Or is it clock based? Or perhaps a bit of both?