Having installed ntp services on Ubuntu 18.04, we had to manually start manually on any reboot using:
sudo service start ntp
It turns out that in Ubuntu 18.04, systemd has an in-built timesync service that fires on boot called systemd-timesyncd. I believe this service was clashing with ntp and causing ntp to fail to start.
I’ve carried out the following to disable systemd-timesyncd on all three time servers, and to replace it with ntp:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
sudo systemctl status systemd-timesyncd
sudo systemctl enable ntp
suso systemctl start ntp
sudo systemctl status ntp
All timeservers now appear to start ntp correctly.