The process of elimination is best in this type of chaotic code situation. the gas cap codes are easy, just get a factory gas cap, for starter and make sure that you tighten it all the way each time. I do Smog in CA and I see 2003 GM gas problems every day.Low engine temp is a thermostat problem. replace the thermostat. This is also pretty common. The code has to do with the truck taking too long to warm up, which means that the truck runs rich for a longer than normal time and you burn way more gas. A new Thermostat will fix this. Take care of these issues and then look for another shop. These codes are very common and a good shop should not be baffled by these. The shop that you are going to doesn't under stand modern diagnostics. Best of Luck!
I am aware that these are intermittently setting code problems. Trust me, I know what I am speaking about. I do Diagnostic and Smog for a living in CA and was lead Diagnostic Tech at a GM Dealership. It takes a very sophisticated 5 -10 million per second sampling labscope to catch the codes in the act. The t-stat code is a matter of watching the warm-up time. Most codes in all cars are random and intermittent. They almost never show themselves in the service bay or on a test drive plus the computers are programmed to substitute values so the data stream is reading false info unless you labscope the component on a test drive. Best of Luck!