Another thing i would look at.
Bad fuel mileage could be a faulty coolant temp sensor that always reads cold causing the fuel control system to run rich and waste fuel ?
Look up the specs and measure the resistance of it @ cold and @ operating temp.
If the resistance of a coolant sensor is within specs and changes as engine temperature changes, but the engine is not going into closed loop, the fault is in the wiring or PCM.
You can also check into the Voltage specs too.
A cold coolant sensor will read a few volts then as the engine warms up and reaches operating temperature it should gradually decrease its voltage.