The solution is to create AltGr encodings in /usr/share/X11/xkb/symbol/us, but swap most keys using /usr/share/X11/xkb/keycodes/evdev instead.

(However, I haven't worked out how to map Fn+F5 and Fn+F6 to XF86MonBrightnessDown and XF86MonBrightnessUp yet.)