Might try disconnecting the battery for an hour or so to clear adaptive memory.
When a code has been set the ecm substitutes a value so the thing will run and it gets stuck in the memory even after the sensor or such has been changed. Other than that the only thing that comes to mind is make sure your egr is not getting a vacume signal when the engine is cold,unless it has the digital egr.Also we have replaced a lot of injectors on throttle body systems.