What you have is recursive json data. This can be especially tricky to handle properly, but there is a related post which should help:
Explaination
apoc.load.json supports jsonpath, allowing you to restructure the json into something more manageable.
Go to jsonpath.com, and experiment with paths which give you a flat list of all "children". Create a node for every ID, then MERGE your way through as you iterate.