`allowUnfree[?Predicate]` does not apply to `self.packages`?

Thanks to the help from above, the solution I ended up using follows.

I made a function to generate an overlay that modifies the license of every package provided to say that it is a free license:

  # make an overlay lambda that overrides the license of every provided package
  # to spoof free-ness
  # returns an attrset where the keys are the pnames of each derivation
  mkUnfreeOverlay = packages: let
    overrides = lib.pipe packages [
      (map (value: { name = lib.getName value; inherit value; }))
      builtins.listToAttrs
      (builtins.mapAttrs (_: package: package.overrideAttrs (
        old: lib.recursiveUpdate old {
          meta.license = (
            if builtins.isList old.meta.license
            then map (_: { free = true; }) old.meta.license
            else { free = true; }
          );
        }
      )))
    ];
  in (_: _: overrides);

This can then be used in a flake such as:

    overlays = genSystems (system: let
      pkgs = self.packages.${system};
    in {
      allowUnfree = flib.mkUnfreeOverlay [
        pkgs.ttf-ms-win11
      ];
    });

And to tell nixpkgs about it, I use:

    pkgs = import nixpkgs {
      inherit system;
      config.allowUnfree = true;
      overlays = [
        self.overlays.${system}.allowUnfree
      ];
    };

Then the package can be used like pkgs.ttf-ms-win11 anywhere with no headache.

Make sure to add { nixpkgs.pkgs = pkgs; } in the nixosConfigurations modules list, and inherit pkgs in homeConfigurations just as usual.