I have a 2014 rMBP 15" machine. Yesterday afternoon the uiop, hjkl;, and bnm, keys became non responsive. I had just gotten back from vacation, so my first thought was that a liquid had found its way under the keys in that area. But a check with a loupe I saw no evidence for it. It really felt like it was a hardware problem and I was ready to set up an appointment at the local Dunce Bar. However, on a lark I decided to simply try booting into another user account. Voila'. All the keys worked. My first notion was to, on my main user account, move all of the Preference files (~/Library/Preferences/…) with a modification date around the time I first noticed the problem to the Desktop. There were about 30 of them. After doing this, I rebooted. The non-functional keys immediately became functional. The vast majority of the 30 Preference files I moved to the Desktop were immediately rebuilt by macOS. That left a half dozen or so Preference files from minor apps to ponder. I didn't bother. I deleted those, too. I had to re-enter serial numbers for a couple of apps as well.
This approach was only possible because I knew pretty much the exact time things went awry. However, the idea that the problem may involve only one user account might help. The idea that there is a corrupt User account preference file may help a little more. There is a bunch of these User Preference files that seem to churn all the time and which can be deleted with impunity.
You should be able to restart just fine even if you remove ALL of your User Preference files--or at least all the ones with Modification Dates ON or after your original keyboard problem. To prove one of them is at fault for keyboard woes, just remove (all of) the files in ~/Library/Preferences/ to a safe place and then restart. If you find that your keyboard problem is solved, then you can use the ancient and honored technique perfected by those of us who used to deal with corrupt preferences under System 6,7, 9 etc: Put half of your preference files back and restart. No problem? Assign those files a label or comment so you can keep track of them. Then add back half of the files you have not added back yet. Repeat until you get the problem. At that point you should have a small number of files to consider. You can then continue your winnowing process to find the individual file. As I said, I didn't bother. The files either regenerate themselves or can easily be regenerated when you set the prefs for the app that generates the preference.