Sadly, with MacOS Sierra, Karabiner has gone into a strange kind of hiatus-but-not-really-because-someday-we'll-fix-it.
Which is too bad, because Karabiner was the perfect tool for what I needed (which was make MacOS behave like a forty-year-old UNIX terminal because my stupid fingers still hit ^W to delete a word and I kill the window and I can't stop, no, don't help me, I'll die eventually and then my problem is fixed).
My other main tool is Typinator for abbreviations--w for with, h for the, n for and, etc; those really add up.
So far, I've found BetterTouchTool to be a viable replacement for Karabiner, even better in some ways. But worse in others; key repetition doesn't work for me despite the developer saying it does. (Possibly it interacts with Typinator, but turning the latter off doesn’t fix the problem.)
I've written a whole novel using these two tools (Typinator and BetterTouchTool), but I'd appreciate anyone chiming in if they've found something better still.
I fixed the issue!
Turns out that on this keyboard, doing fn + f12 actually disables the windows key. This was turned on by default. This is why nothing was working when I would press the windows key. I pressed fn + f12 again and now everything works :| weeks of frustration all due to me not looking at my keyboard layout :(
Best Answer
One Excellent third party tool that can make amazing edits to the keyboard mapping is named Karabiner.
To accomplish option and function key changes, create a filter for the external keyboard and adjust the modifier keys.
Prerequisites: external keyboard
Make a note of the vendor and product ID of the external keyboard:
Hit the tab Main
Enter the (PC-)Ctrl-key, (PC-)Fn-key and the (PC-)Alt-key and make a note of the "event names/miscs":
Close the EventViewer
Enter the customized keycode and replace the vendor name, the product name, the vendor and product ID by IDs and names found above as well as the "names/miscs" of the events (= KeyCode).
Depending on your findings in the Event Viewer you may have to remap (PC-)keys to Control_L and Command_L also.
Save the file