You may have checked everything here, but maybe something you missed:
Fuel Injector Flow Rate Programming
Circuit/System Description
The control functions for the fuel injection system are integrated in the engine control module (ECM). Each injector's flow rate information and cylinder position are stored in the memory of both the glow plug control module (GPCM) and the ECM. The fuel injector flow rate programming must be done when any of the following procedures are performed:
The ECM is replaced
The GPCM is replaced
Any fuel injectors are replaced
If the ECM does not communicate, the flow rate information can be retrieved from the GPCM. If both control modules fail to communicate, the fuel injector flow rate information, or injection quantity adjustment (IQA) flow rate numbers, will need to be retrieved from each individual injector.
Before Programming A Control Module
Important: DO NOT program a control module unless you are directed by a service procedure or you are directed by a General Motors Corporation service bulletin. Programming a control module at any other time will not permanently correct a customers concern.
Ensure the following conditions are met before programming a control module:
Vehicle system voltage
There is no charging system concern. All charging system concerns must be repaired before programming a control module.
Battery voltage is between 12-16 volts. The battery must be charged before programming the control module if the battery voltage is low.
A battery charger is NOT connected to the vehicle battery. Incorrect system voltage or voltage fluctuations from a battery charger may cause programming failure or control module damage.
Turn OFF or disable any of the following systems that may put a load on the vehicle battery:
Twilight sentinel
Interior lights
Daytime running lights (DRL)-Applying the parking brake, on most vehicles, disables the DRL system. Refer to the Owner's Manual.
HVAC systems
Engine cooling fans, etc.
The ignition switch is in the proper position-The scan tool prompts you to turn ON the ignition, with the engine OFF. DO NOT change the position of the ignition switch during the programming procedure, unless instructed to do so.
All of the following tool connections are secure:
The connection at the data link connector (DLC)
The voltage supply circuits
DO NOT disturb the tool harnesses while programming. If an interruption occurs during the programming procedure, programming failure or control module damage may occur.
Circuit/System Verification
Review the Display ECM & GPCM Inj. Flow Rates parameter with a scan tool. All cylinders should be programmed with a flow rate number. Both the GPCM and the ECM should be programmed with the same flow rate numbers for the corresponding cylinders.
Circuit/System Testing
Important: If the flow rate number is not available in either control module, the numbers will need to be retrieved from each individual injector.
Fuel Injector Identification Numbers
1 - Manufacturing Plant
2 - IQA Number
3 - Manufacturing Date
4 - Injector Number
5 - Serial Number
With a scan tool installed, enter the vehicle information and select the following options:
Engine Control Module
Module Setup
Injector Flow Rate Programming
Display ECM & GPCM Inj. Flow Rates
Record all flow rate numbers with the corresponding cylinders from the control modules.
Important: When installing a new fuel injector, ensure that the IQA data number from the yellow IQA Data Tag, shipped with the new injector, is programmed to the correct cylinder
If any injectors are replaced, go to Reprogram Injector Flow Rates parameter and enter the flow rate number of the new injector to the corresponding cylinder. The flow rate numbers will automatically update both control modules.
If the ECM was replaced, go to Copy GPCM Inj. Flow Rates to ECM parameter and reprogram the ECM. This will update the ECM with the GPCM flow rate numbers.
If the GPCM was replaced or the flow rate numbers are not the same for both modules, go to Copy ECM Inj. Flow Rates to GPCM parameter and reprogram the GPCM. This will update the GPCM with the ECM flow rate numbers.
If both control modules were replaced, go to Reprogram Injector Flow Rates parameter and enter the previously recorded flow rate numbers or the numbers retrieved from each individual injector, to the corresponding cylinders.
Repair Instructions
Install any components or connectors that have been removed or replaced during diagnosis.
Perform any adjustment, programming or setup procedures that are required when a component or module is removed or replaced.
Turn OFF the ignition for 60 seconds.
Turn ON the ignition, with the engine OFF.
Clear the DTCs.
If the repair was related to a DTC, duplicate the Conditions for Running the DTC and use the Freeze Frame/Failure Records, if applicable, in order to verify the DTC does not reset. If the DTC resets or another DTC is present, refer to the Diagnostic Trouble Code (DTC) List - Vehicle and perform the appropriate diagnostic procedure. OR
If the repair was symptom related, duplicate the conditions under which the customer concern occurred to verify the repair. If the customer concern reoccurs, return to Symptoms - Vehicle and perform the appropriate symptom diagnostic.