Usually with a passlock problem you have to either replace or bypass the lock cylinder. I reccomend bypassing it simply because of cost, of course you won't have any anti-theft system any more. To bypass it, simply cut the signal and ground wires from the BCM and solder a resistor inline on the BCM side of the wires. There is a range of resistors that will work, if the resistance of your lock cylinder is high, replace it with a low resistor. If it's low, replace with high and replace middle with either end. I have a table of the recognizable resistor values at work, which I will post if I can remember to

The reason you should change the resistance as much as possible is that it won't relearn if the value is really close to what's in there now.