Sounds very mysterious. If the only change you make is to remove the requires, and then they all load then it is strange. Just a few comments, in the hope of being helpful.
You say...
then they all load fine and their notifications are sent perfectly.
You know that it is your app that sends the loaded notification, for each resource, when it is loaded. Otherwise the SM doesn't know whether the load completed; the SM starts the resource load, but you must tell it when it is finished. This 'loaded' notification must have the IStartupProxy proxy name in the note body, so that the SM knows which resource has loaded.
So, if there are no requires, then the SM will start all the loads and they will run to completion, but you won't get a 'loading complete' notification from the SM unless you have sent a 'loaded' notification for each resource.
If there is a requires on a resource, SM won't start that resource load until the resources it requires have been loaded, that is, loaded notifications have been sent, by the app, for those resources.
Sorry if I'm repeating stuff that you are well aware of, but trying to be helpful.
----Philip