char customKey = customKeypad.getKey();
char msg[1];
msg[0] = customKey;
This is a complete waste of resources and is nonsense. Any time you are trying to create a one element array STOP!
vw_send((uint8_t *)msg, strlen(msg));
You can NOT pass msg to strlen(). The string functions, like strlen() expect to receive a NULL terminated array of chars. There is absolutely no possible way for a one element array to contain a character AND a NULL. For that, you need a minimum of 2 elements in the array AND you have to explicitly add the NULL.
You KNOW how many elements you are going to put in the array to send. After you do that, why do you need to ask the strlen() function how many characters you put into the array.
Get smart, and just use:
vw_send((uint8_t *)customKey, 1);