You pass a char array to a function that expects a string. Of course, weird things are going to happen.
You CAN make the char array a string, by adding the NULL terminator.
char customKey = customKeypad.waitForKey();
if(customKey)
{
Serial.print(customKey);
referencePDU[n] = Serial.read();
n += 1;
referencePDU[n] = '\0'; // NULL terminate the array
Of course, it makes no sense to print customKey and then assign referencePDU something you read from the serial port, without checking that there is anything to read.
Looks to me like you want:
referencePDU[n] = customKey;