Typically, the pickup for the speedo is from the ABS tone ring on the diff.
The problem is that it all electronic AND it also feeds the equations for the ABS (if you have).
The timing is set up for the 2 different rear end ratios and that is it.
So, with this in mind what is the fix? The only thing that I know of is to use some varient of a black box that changes the timing of the pulses.
Rickson sells one, It is not cheap (~$240) but is works great. It has 2 positions so that you can have both the winter and summer wheels accurate. You can use it to compensate for the tires wearing. I have been able to get it accurate enough to be dead on for 10 miles on the interstate.
It takes about an hour to install. You have to cut and splice an ABS wire. The instructions are pretty reasonable.
Here is why I purchased this unit. I could live with the speedo being off. It is a pain. I could not live with the ABS not being 100%. Especially with the wife and kids riding with me.
This unit will allow you to run with just about any wheel and tire combo under you and you can still get accurate speedo and good ABS.
I hope this helps.