Aaah I know the answer to this one. I just solved it today. If you have both UK and US options in your regional settings, your keyboard will always or occasionally default to US even if UK is the one highlighted as default. Easy to rectify.
Go into Control panel from start up menu.
Click Regional Settings
If both UK and US are there DELETE the US one.
A grey pop up will then tell you that it can't be done yet as the device is in use but your changes will take effect after your next reboot.
Reboot PC and keyboard will be fine with @ where it should be and everything UK like £ sign and so on.