This turned out be an issue with using gravity forms to post an event as well as using the Events API.
Basically we used the wrong form id, so the code ran on a different gravity form and therefore a different post type. Not sure how TribeEventsAPI::saveEventMeta($post_id, $data, $post); would end up deleting all events but it seems it did.