any ideas?
Yes. Your WP-Cron is not working on the new host. It’s a problem with the host being unable to connect back to itself, for whatever reason.
WP-Cron works by making an fsockopen call back to itself (wp-cron.php specifically), which triggers lots of various events. Making future posts publish is one of those events.
Since WordPress can’t trigger WP-Cron to work, the posts never publish. Also, pings and trackbacks won’t work.
The simple solution is to figure out what’s broke on the new host. Does it not have DNS set up properly? Can it not resolve it’s own domain name? Does it not allow fsockopen? Does it have a firewall blocking connections from itself? Could be anything.
As a temporary workaround, you can manually force WP-Cron to run. Edit the wp-cron.php file, and remove this code:
if ( $_GET['check'] != wp_hash('187425') )
exit;
(note, you’ll want to add it back afterwards, so keep a copy of the file).
Next, in a browser, load your own site’s wp-cron.php manually, like so: https://example.com/yoursite/wp-cron.php
That will allow wp-cron to run and take care of stuff. You may have to run it multiple times if it has a lot to do.
In the meantime, ask your host why their webservices are broken.