(warninig this will be a bit biased since you are asking on a FOG forum) Truthfully setting up FOG is pretty easy and is a solid foundation for pxe booting, even multi pxe booting. iPXE is a superior network booting environment as compared to syslinux or grub. With iPXE you can transfer the boot image via http, https, nfs, tftp, and sanboot.

In regards to converting your grub menus to iPXE, i have a tutorial on using FOG as a netboot server: https://forums.fogproject.org/topic/10944/using-fog-to-pxe-boot-into-your-favorite-installer-images

In regards to uefi vs bios, you need the proper bootloader for bios and uefi respectively. This is the same requriement for whatever boot loader you use. For FOG the default one for bios is undionly.kpxe for uefi is ipxe.efi. Most uefi boot loaders end in a .efi extension. For bios/ufei coexistence we have a wiki page for setting up your dhcp server (Win2012 and newer, or linux) so dynamically provide the proper bootloader based on the target computer: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence If you have a soho or router dhcp server that doesn’t support dynamic boot files then you can always install dnsmasq on your fog server to supply the dynamic boot loader. Understand that fog and clonezilla are built on opensouce stack so these tutorials above can be reused for other applications (dnsmasq is dnsmasq, tftp is tftp and so on)