I don't think that the type of keyboard matters. Windows is providing, through NTVDM, an emulated DOS / IBM BIOS environment to the DOS programs, including QBASIC. It seems that NTVDM will let you read the status byte, but seems to ignore writes to it.
You can correctly read the byte at 0000:0417, you just can't set the locks by writing to it, right?
I wrote a QB64 program here:
that uses the Windows API function SendInput() to simulate pressing the lock keys.
Let me know if you need a C++ program to SHELL to from QBASIC 1.1. However, you might prefer switching to QB64.