Linked block instances dissapear from main file

I’m working on a project with a lot of repeated elements within different sub-assemblies.
I normally just use embedded block instances within a single file with no linking.

This is a more complex, large scale project so I was trying out a new file structure using linked block instances.

For example:
File 1, 2 and 3 have basic placeholder elements, different sized spheres in this example.
File two has these spheres as linked block instances in a linear array with some rigging hardware (Its basically a bunch of different hanging chandeliers). This forms 1 sub-assembly of nested and linked block instances.

File 3 combines multiple of these sub-assemblies as linked block instances.

File 3 is then inserted as a linked block instance in the main assembly file (and then copied to multiple locations and orientations). So I have linked block instances with a number of nested, linked block instances.

This was working great until I went make changes to file 1 for example.
For one, it is really tedeous to go through, open and update the links in each file so that they’re reflected in the main file. But then for some reason now all instances of File 3 within the main file completely broke and now I’m left with a random instance of the nested blocks in its place.
It doesn’t happen consistently either. Other (different) instances with the same elements seem to function as intended.

This took quite a while to set up and now its completely broken. Am I doing something wrong? This seems like a really logical way to organise and work on a bunch of different elements while keeping their respective drawings and production data seperated and easy to find.

Does anyone have experience with this type of workflow? Will this be fixed in rhino 8?