Would you like a list?
It's hard to spot the problem you are complaining of - your code doesn't work with a string "Apple" and a key of "1234" so your testing is a little suspect...For a Vernam Cipher, I would expect to get an encrypted string the same length as the input string, and your code doesn't do that. It also doesn't implement a Vernam Cipher: the lack of an XOR in there is a bit of a clue.
http://www.cryptomuseum.com/crypto/vernam.htm[
^]
I think you need to sit down, read the link, and start all over again.
BTW: You don't need to create a new key that is long enough to cover the whole message:
Just create an index starting at zero, and check it against the length of the key:
int keyIndex = 0;
foreach (char c in Text)
{
if (keyIndex >= key.Length) keyIndex = 0;
char keyValue = key[keyIndex];
...
keyIndex++;
}