Could be sensors controlling it, wheel speed sensors communication with the speed sensor or something like that, maybe check the terminal's on them all the way threw the path and see if they are corroded, maybe put an ohmmeter from one end of path (wire ) to the other and see if you have a high resistance, or just something debris or dirt on the sensor itself.
I just bought a used Silverado and was going down the highway and all the warning lights came on and stayed on and hooked the scanner up to it and found the one wheel speed sensor throwing the code, took it in and they found a broken wire I guess and replaced it. I bought a 5 year warranty $4000, but I would think about an extended warranty if I were you.
Could just be an out of range sensor too intermittently, that would be a pain to find, unless you do a scan while it's happening, even then may just say a fault and not tell you exactly where. Be careful I disconnected my instrument panel and forgot to disconnect the battery first and fried the speed sensor on the motor, tg that was it and not the ECU and other sensors. Some of my post's show a good way to clean connectors with vinegar and salt and then neutralize with baking soda and water. But good luck and good day