1) The format is correct, but there are two records missing. If you use ns records in a zone that are subdomains of the same zone, then you have to add A-records for these subdomains in the zone. Its the same issue with your first post, so ubuntu was not a problem here, there were just 2 records missing.
A ns xx.xxx.xxx.xx 0
A ns2 xx.xxx.xxx.xx 0
Btw, the bind error that the zone was skipped due to errors must have been reported in /var/log/syslog on your Ubuntu server.
2) You dont have to run your own dns server.
3) Reason explained in 1).