The speedo is electronic , and has an internal " stepper motor " to move the needle according to info the controller sends it . Sounds like your speedo has developed a temperature sensitive binding and the speedo may require replacement . Speedo may have a manufacturers name and part number on it , so if you could find that you might be able to track one down on line.
If your cruise works then the speed sensors are working and supplying good info.
99DSDP 3884, Freightliner, XC, CAT 3126B, 300 HP /ALLISON 3060
2000 Caravan toad, Remco & Blue Ox.