I have not experienced your specific problem you explain in your last paragraph.
I have found the problem you are experience you explain in your first paragraph is due to either a circular referencing problem or the file the assembly/part needs to rebuild from is not solved. I see a lot of ? in your assembly. I would open up those parts and rebuild and they should update in your assembly.
If you draw out block diagram (by hand I mean) how your assembly has to build you might discover circular referencing problems. If a reference goes back to part file then to build to an assembly but then that's used to adjust another location on the part file......might cause hiccups.
Question marks bother me a lot more then the circular rebuilds, unless that part has both, then it's time for something else..
Scott said it best when it comes to circular rebuilds.