Sounds like you have a bad antitheft control module. This module is "forgetting" the code in your key, and is always needing reprogramming. This module should not have to ever be reprogrammed unless the module goes bad.
The only way the module can be reprogrammed is by using a dealership scan tool.
You can try this relearn procedure that you don't need a scan tool for. It will take about 30 minutes:
1. Turn ON the ignition, with the engine
2. Attempt to start the engine, then release the key to ON, vehicle will not start.
3. Observe the SECURITY telltale, after approximately 10 minutes the telltale will turn OFF.
4. Turn OFF the ignition, and wait 5 seconds .
5. Repeat steps 1 through 4 two more times for a total of 3 cycles/30 minutes , the vehicle is now ready to relearn the Passlock(TM) Sensor Data Code and/or passwords on the next ignition switch transition from OFF to CRANK.
6. Start the engine. The vehicle has now learned the Passlock(TM) Sensor Data Code and/or password. IMPORTANT: The vehicle learns the Passlock(TM) Sensor Data Code and/or password XXXXX the next ignition switch transition from OFF to CRANK. You must turn the ignition OFF before attempting to start the vehicle.
7. With a scan tool, clear any DTCs if needed. History DTCs will self clear after 100 ignition cycles.
Let me know if you need any more help!