As the name suggests services.xserver.xkbDir
is an X server configuration. While GNOME can use X Server, it also supports Wayland and it tends to configure both using GNOME Settings Daemon rather than relying on X Server specific configuration files. As such, it is hard to tell whether the NixOS option is even expected to work.
For example services.xserver.{layout,xkbVariant,xkbOptions}
NixOS options are only used by GNOME for initial configuration of GNOME Settings Daemon and further changes to those options will be ignored, see https://discourse.nixos.org/t/setting-caps-lock-as-ctrl-not-working/11952/2?u=jtojnar.
In the past, I have just put the xkb configuration into the home directory using home-manager and that worked in GNOME.