I’ve come up with a workaround / solution.
I’m using a before_save_post action to check if the ID exists in the custom table. If not, I insert a row with the ID. This ensures the meta boxes can save normally.
I can post the code if anyone else is interested or having a similar issue.