For anyone with the same issue, I have discovered that it is essential to set up the custom entities to be synced in a particular order. Here is the response from Marketo Support (which worked), in case anyone else hits this problem:
Here is the summary of the steps involved to refresh the schema:
1. Disable the global Salesforce sync.
2. Remove the objects from use from all assets.
2. Next, disable the sync on the level 1 custom entity and any other related object.
3. Refresh the schema.
4. After the Schema refreshes, enable the sync for the custom entity furthest related from the Contact (in our case), then enable the sync for the custom entity directly related to the Contact (and any other objects that need to be re-enabled).
5.Enable the Global Salesforce Sync.
Hope this is useful to others -