Setting up grub does not remove systemd-boot, so it still has all its files and its UEFI boot entry. And systemd-boot claims $ESP/EFI/BOOT/BOOTX64.EFI by default, which is the fallback loader that some motherboards default to no matter what. So you need to manually remove all the systemd boot things. You should already see the grub entry in efibootmgr though so that’s surprising.
Sidenote: Why switch to grub? It’s generally not recommended in the NixOS community if you can avoid it. If it’s just for os-prober, you can probably just use boot.loader.systemd-boot.extraEntries to manually add boot entries for other OSes with their boot loaders on the same ESP, and windows should be autodetected by systemd-boot in that case anyway.
A normal nixos-rebuild does not fully install the bootloader. It only updates the menu. You need to call it with --install-bootloader in order to put the new bootloader in place.
The fallback loader issue may further complicate this issue, though, as noted above. On that subject, note that the boot.loader.grub.efiInstallAsRemovable option exists.