Hola Fernando,
Tienes 2 opciones. La primera es configurar tú mismo el servicio DHCP de tu elección (dnsmasq, dhcp3-server u otro) y lanzarlo antes de iniciar el servicio de red backharddi-ng. De esta forma prevalecerá el que hayas personalizado.
La segunda es personalizar el DHCP que lanza backharddi-ng. Como bien dices por defecto no ofrece rango de IP's ya que está pensado para actuar como proxy DHCP (o sea trabajando con el DHCP de tu red). En el foro hay un hilo en el que se habla del tema. Deberás editar el fichero /usr/share/backharddi-ng/python/src/backhardding/service.py. En la linea 483 está definido como se invoca a dnsmasq.
Respecto a la segunda cuestión, al iniciar el servicio backharddi-ng se autoconfiguran los ficheros de configuración de PXE para que los equipos cliente ataquen al servidor correcto. Por lo que comentas, esta autoconfiguración no debe haber funcionado bien. Una vez iniciado el servicio, dentro de /var/lib/tftpboot/backharddi-ng/pxelinux.cfg debe haber varios ficheros de configuración de arranque: uno por cada subred encontrada en el servidor (como nombre la ip en hexadecimal) y otro más, default, para el resto de subredes. Los clientes cogerán uno u otro fichero de configuración dependiendo de desde qué subred se conecten. En el fichero de log del servicio /var/log/backharddi-ng.log podrás ver qué fichero de configuración está cogiendo cada cliente. Debes asegurarte de que en dichos ficheros de configuración, en el parámetro APPEND del arranque por red, haya un parámetro fijado llamado backharddi/net/server. Dicho parámetro es para el cliente y debe tener la ip del servidor para esa subred. El cliente primero busca el servicio de red en esa ip. En caso de no encontrarlo, busca en la puerta de enlace o servidor DHCP de la red y si no lo encuentra, entonces pregunta al usuario.
Un saludo.