and the serial monitor shows my keystrokes
No, it does not. It shows some text sent by the Arduino. That is NOT the same as a keystroke.
The Serial pot is useful to get the code to the point where it can properly read from the keypad. Since you have that working, you now need to stop using Serial, so that the Keyboard class can talk to the PC, in a manner that does not use Serial.
Instead of using Serial.print(key), you will use Keyboard.press(key), a small delay, and Keyboard.release(key);. Look at thhe Keyboard examples, as I have said repeatedly.