Does it say on the offer "based on two keys present?" or something along those lines? I doubt it. Therefore they don't have a leg to stand on. If they had any idea what they were doing in the first place they would have clarified if the second key - and indeed, the service key were present.
They are the ones in breach of contract - you have the piece of paper that says they have agreed to a trade in price.
If you are feeling generous they can take £100 off for the cost of a key and programming