So the GRUB screen responds to key-presses, just not the fully booted
OS? Can you tell it to boot into text mode (adding systemd.unit=multi-user.target to the kernel line)?
Does the keyboard work then?