Did you still have the initcode active that i posted?
static void __attribute__((noinline)) mykbd_task_proceed()
{
kbd_new_state[0] = physw_status[0]; // <---- Add this
kbd_new_state[1] = physw_status[1]; // <---- Add this
kbd_new_state[2] = physw_status[2]; // <---- Add this
....
Maybe this fixes your problem (or if still active, it is the reason for your problem...

)
In the G11 port, physw_status[2] is the register that handles some of the keys, so if you disabled it in your code (by commenting out), they will not work at all.
That you cant read the OSD text in the splashscreen is maybe caused by using the wrong color palette.