I had an intermittent speedometer failure for a couple of years and finally fixed it. Mine was a lot like yours in that the check engine light was setting. Every time the speedo quit, the cruise control did, too.
Critical to diagnosing my problem was determining the meaning the the check engine light. In my case, it was the engine's ECM setting a code for "road speed invalid". I bought VMSpc, which can capture the chassis codes so that's how I knew what it was.
Freightliner replaced the road speed sensor in the Allison transmission when they were trying to fix the problem. In later conversations with Allison, I was told that the road speed sensor is critical to the operation of the transmission and that if the sensor were bad, all kinds of error codes from the TCM (transmission controller) should be set. Without TCM codes, I was told to believe that the sensor was good.
That left me with a "path" problem in the wiring between the TCM and the ECM. It took some time to get the Freightliner wiring diagram corrected but after I did, I was able to trace the wiring between those two. Trying to determine where an "open" in the wiring existed, I fixed the problem. I had shoved a paperclip along the flat side of one of the wires in a connector. It just happened to be the point were contact was breaking intermittently. I've never had another failure.
I promise you that the average truck shop lacks the understanding of how the chassis wiring works to the extent that is necessary to repair this kind of a problem. It took a while to figure it out myself. I have a computer background so the CAN (controller area network) on which most MH wiring setups are based was fairly clear to me. I had several "expert" truck techs on forums directing me to the speedometer head itself. Because I knew that the road speed data was not being sent via the CAN (because VMSpc would have found it there), I knew that the failure was before the ECM, not after it. Had I listened to the expert opinions, I would have spent money on the speedo head and without result.
Good luck with your problem. Since I have a Cummins, not CAT, I'm not going to be any help to you in the engine area. For anything else, I'll do my best to answer any questions that you can come up with. The ECM should be the one driving the cruise control, assuming that it is getting the proper road speed data.
2000 Georgie Boy Landau 36' DP
2005 Saturn Vue toad