I just encounter countless broken programs that don't really support that distinction (e.g. Chrome ignoring date/time formatting settings in its UI since UI language and locale are being conflated, some applications trying to guess the UI language based on the locale or even the keyboard layout (what thought was behind that, I cannot even guess). It's a mess, but mostly on the application side and probably because lots of cross-platform applications don't even know there is a distinction on some platforms (and gettext not knowing about UI language and thus using locale doesn't help either).
When I was working on a host where I needed two layouts (US-Dvorak + US-Qwerty for other users) I ended up solving the problem using AutoHotKey to hook all keys and send a different keyevent. It was pretty gross but it bypassed all the issues I was having in a convenient way.
Perhaps you could hook US symbols such as "$" and rebind to UK equivalents with AHK? Alternatively, creating a modified EN-US keyboard layout which has relevant key-symbols would also work / be less hacky, but probably require more effort.