Clean and re-seat connectors on ECM, TCM and BCM. I suggest you do this one module at a time so you know which one is causing loss of communication. You may not have a CEL but I'm sure you have a pending "U" code or in history. Once you find which connector was causing it clean again and add dielectric grease. I would start with the 2 blue/gray connectors on the BCM, this is where the GMLan gets amplified clipped and restored. You may also want to check your oil pressure sending unit to make sure it's not leaking oil and then running down along the wires all the way to the ECM. Oil in a connector tends to wreak havoc.