Dashboard cards won't load after update through API PUT

I am working with a set of dashboards with identical layout, but different default variables set for the purposes of accessibility to data consumers and sending distinct emails.

To manage this I have created a 'parent' dashboard and 'child' dashboards which are all copies of the parent except for the difference in default variable settings. Rather than update the child dashboards whenever I make a change to the parent - I've been working on a python script to use API calls to replicate the structure of the parent into the children.

The issue I'm having is that attempts to PUT into /api/dashboard/:id from each child based on the GET from the parent aren't working. I am running into one of two problems:

  1. If I try to GET from /api/dashboard/:id from the parent then PUT directly into the child (after updating collection_id, id and name fields) I get a 500 error. I get this error even when testing a GET and subsequent PUT from the same id with no changes. I am unsure why this is the case.

  2. If I GET from /api/dashboard/ and pull the record (in json format) corresponding to the child, get just the dashcards info from the parent and add it to the JSON from the child, then PUT that into the child - the dashboard updates and the structure of the child matches the parent but the dashcards don't load - they don't error out they just spin forever.

So far - if I edit the child dashboard in certain ways such as adding and removing a tab, the dashcards start loading again. But the goal is to avoid manual work like this.

Is there a proper way to handle API calls like this, or is there a way to use the API to fix the child dashboards after the load?