Sorry, that was a bit of sloppiness with my use of CONVERT. The length returned from that function is by default 30. You can change the select statement to something like the following to get the full data back:
SELECT CustID, Name, City,
CONVERT(VARCHAR, DecryptByKey(CreditCardType)) AS CardType,
CONVERT(VARCHAR, DecryptByKey(CreditCardNumber)) AS CardNumber,
CONVERT(VARCHAR(50), DecryptByKey(Notes)) AS Notes
This issue has nothing to do with the encryption.
Thanks for pointing that out!