he needs to change his battery. those little chargers wont be accurate in reading true voltage or amps. needs a load test on the battery. but for some reason he is stubborn and wont try a different battery/jump start. need to verify proper cranking amperage and battery voltage before doing anything else. the amount of codes that get thrown with a dead battery will have you chasing your tail for days. cant fix a phantom code due to a bad battery. will cost you thousands. as @ScottRaptor just found out, his battery is toast even though it read proper voltage.
once we can truly verify battery is good, then we can look for other issues
once we can truly verify battery is good, then we can look for other issues