if the odo is correct then the gear may be wrong size.

if it is 20 mph over road speed you need more teeth to slow the speedo needle down.

if it is 20 mph slower then you need less teeth to speed it up.

I changed from 27 tooth speedo gear with a 2.76 gear and 29" tire

to a 38 tooth speedo gear and 3.91 gear and 29" tire

it could very well be the cluster but I would look at the speedo gear to see what tooth count you have in there the see what it would call for with gear x tire size.

then retry speed/mile marker test and speed with a GPS.

thats the way i understand it.