For reference after spending a lot of time resolving this I thought I would post this solution in case anyone else is looking for a solution.

The VPS host I have a machine on didnt have Ubuntu 16.04 or anything very new, so I asked for a newer ubuntu which they dumped on but it didnt work, when it booted, it had no networking and running systemctl reported something like

Failed to connect to system bus: No such file or directory

this is because its using a systemd >220 which seems to expect a feature from the kernel which 2.6.32-042stab108.8 doesnt support but post 2.6.32-042stab111.1 does eg 2.6.32-042stab116.2 (which is on another providers vps).

I fixed this by installing that latest ubuntu that worked 15.04
and doing a
apt-mark hold systemd systemd-sysv
then
do-release-upgrade -m server -d
do-release-upgrade -m server
the first upgrades to 15.10, the 2nd to 16.04 but with an older systemd, it would normally have systemd 229 install for 16.04, but this keeps systemd 219 installed and all seems to work ok.