No idea: I don't use DNSmasq. Until you asked your question, I had no idea it existed. I have the same thing set up with isc-dhcpd and bind.
A few suggestions:
FreeBSD boxes do not send their domain names in dhcp by default (At least, not unless this has been changed recently.) To get them to do that, put this line in /etc/dhclient.conf
Code:
send host-name "yourhostname";
Many windows boxes use spaces and non-standard characters in their host names, which do not belong in the dns system. Use upper-case A-Z, 0-9 only. Many DNS systems will choke over names with non standard characters. Some won't - try and see - but start with standard letters.
Make sure you check the log files in /var/log/. The system may well be trying to tell you what is wrong.
That is all I can think of. If no one else here has dnsmasq experience, try posting to the dnsmasq mailing list with as much information as you can think of.