General process for compensating a complex system in the time domain
One of the first questions you probably need to ask yourself is: do I want to maximize the possible bandwidth of the system or do I just need to make it stable?

One way I have dealt with this issue is to make sure that the unity gain bandwidth of the A1/B2 loop is much higher (I use 10x as a rule of thumb but it could be lower) than the desired bandwidth of the outer loop. If that isn't possible due to bandwidth limitations of A2/B1 then you are going to have a really hard time compensating the system.

Once the inner loop is compensated at an acceptable bandwidth, then you can focus on the outer loop. In this case it helps (but not required) to target an outer loop unity gain bandwidth to be at a point where the inner loop is close to single pole roll-off. This makes it easy(er) to calculate where to put your dominant pole to compensate for ringing/settling-time etc.

Without more detail in the question it's hard for me to give more heuristics than this. Hope it helps.