Er, just a thought, but don't the codes stay in the memory unless they are cleared? Does it run fine now? If so it could now be ok but still showing history codes. My abs sensor ring did exactly that. On all 3 of my 3.3 petrols the radiator cooling fan comes on before it's up to temp, possibly say 1/4 mark, then off, then settles to an expected pattern - if it's ruddy hot, or the AC is on, it runs.