Chances are you just have a bad pass lock sensor inside the ignition switch. This sensor inside the ignition switch receives a reference voltage from the BCM when turning the key on. This means that the sensor inside the ignition switch is considered to be a hall affect sensor. When turning the key on, the pass lock sensor receives 5 volts from the BCM. IT will then send a voltage reading back to the BCM after it goes through the resistor. The voltage going back to the BCM will be considerably lower than 5 volts because it went through the resistor thus lowering the voltage. The BCM "learns" this reading over time. The voltage reading coming back into the BCM needs to be the same every time the key is turned on. If not, then this is what causes the no start condition. Sometimes the BCM will "forget" this value or sometimes the ignition switch will start to go bad and will not send out the same voltage reading each time the key is turned on thus resulting in this no start condition. That is when a relearn procedure usually does the trick. If not, the ignition switch usually needs to be replaced.
Here is the relearn procedure.
Turn ON the ignition, with the engine
Attempt to start the engine, then release the key to ON, vehicle will not start.
Observe the SECURITY telltale. After approximately 10 minutes , the telltale will turn OFF. The vehicle is now ready to relearn the Pass lock Sensor Data Code and/or password XXXXX the next ignition switch transition from OFF to CRANK.
Turn OFF the ignition, and wait 5 seconds .
Start the engine, the vehicle has now learned the password.