The problem here is that Dorico does not know exactly how much vertical space the music is going to occupy until it has cast it off, but it cannot know exactly how to cast it off until it knows the height of the music, so this is an inherently circular problem.
When the 'Automatically resolve collisions between adjacent staves and systems’ option is on, then Dorico makes an estimate of what it thinks the height of the system(s) is likely to be prior to casting it off, so that it can decide when it needs to move on to the next frame; the reason it has to work this way is that the next frame may not be the same size as the current one – in particular, it could be narrower or wider, in which case the casting off might need to change.
So before it casts off it needs to try to work out how many systems it can fit into the current frame at the current width. It can’t do the final layout yet, because some of the things it needs to lay out cannot be laid out until we know how wide the frame is etc., so it’s using a relatively crude estimate based on the kinds of items you have in each system. Low and high notes contribute, as to lyrics, dynamics, tempos, and so on. I hope that one day we’ll be able to come up with a better approach to this inherently rather circular problem, but as yet we haven’t got one!
In your score, Dorico assumes that based on its estimates two systems will fit in the height of the frame, but when it comes to it and the systems are taller than it expected, then you end up with collisions, because it can’t change its mind and force one of the systems into the next frame on its own. However, adding a frame break manually should sort things out.