Check your battery for corrosion. If it all looks good, get it tested. The least little change in electrical current from the battery causes the GMT-900 electrical sytem to go all kind of haywire.
After fixing all of that, getting a new Optima Yellow Top and still having issues similar to what you described, I went to the dealer thinking I had a bad ground somewhere. Turns out, I had a crimped positive battery cable that was causing all of the problems. Replaced the cable under warranty and nothing more to report. By the way, I believe there is a GM TSB out for this issue on certain model years of the GMT-900.