When I decided to learn Dvorak (for which I can highly keybr.com, they support it) I immediately encountered the shortcuts issue. Ctrl+C did not work and switching between keyboard layouts just for shortcuts was a no-go for me. I simply use too many shortcuts. After lots of Googling I eventually came across this Stackoverflow post which provided a program which can modify the keyboard layout.
In short Windows has several bindings to a key. You can for example bind ‘a’ to ‘q’ and ‘n’ to ‘Q’; after which ‘qQqqQQ’ results in ‘anaann’. So you can basically create your own keyboard layout the way you want too. The values you have bound to a key do not correspond to the value Windows takes if you press the key in combinateion with the CTRL key. In these cases Windows uses the ‘Virtual Key’ value. Luckily the creator of this program provided an adapted version that allows you to change the assigned virtual keys as well; which can be found here (download the ‘2000 demo’ version).
After quite some time I had mapped all virtual keys to where they were located on a QWERTY keyboard. Unfortunately I had multiple devices on which I needed this keyboard and I did not want to do this on all those devices again. Besides this Windows had reset the keyboard a few times, so there had to come another solution.
Therefore I downloaded the Microsoft Keyboard Layout Creator 1.4 which allows you to create installation files of keyboards you made (or existing keyboards in the system) and exported the installation files to save others the hassle of assigning the virtual keys. You can download these files below, simply run the installer and it should be added to the Windows keyboards after which you can switch by pressing CTRL+SHIFT.
If you want to install the keyboard manually, here is the file which be loaded into Microsoft Layout Creator 1.4.
I have tested this on Windows 10 (64 bit) but assume this will also work on other versions of Windows.