2D NPC's keep overlapping

Hi. This is two or three problems actually, but I only need one solution.
In a top-down space shooter scenario, I have ally and enemy fighters who will attack each other or the player. I have 2D trigger colliders on them and move them using rigidbody (3D, with the rigidbody on a child) AddForce. The reason I created a child was that I couldn’t successfully modify the 3D movement script to affect the 2D rigidbodies.

Anyway, take a scerio where 2 allies are chasing one enemy ship. The allies will move onto the same spot and fairly soon overlap and completely blend together.
To prevent this I added a non-trigger circle collider(2D) to an empty child object named “BreathingRoom”. For some reason the collisions didn’t register, and I’ve checked the 2D physics settings. The layers should be colliding.
Next I tried a SPHERE collider instead and these collisions DID register. The allies and enemies will no longer fly on top of their team-mates, but fly next to each other , at the distance of the sphere collider radius (x2, obviously).

The problem with the sphere approach is that each collision they make is changing their rotation, so that they no longer point forward, but off to one side more and more as they make more collisions. I tried to lock the rotation by adding a rigidbody(3D) and locking the rotations but then the NPCs were back to flying on top of each other, seeming to ignore the sphere.

So, I either need to lock the rotations on the collider, or learn some advanced scripting to prevent them moving on top of a team-mate, while still heading to their targets. Which way would be more correct/ efficient/ doable?

Thanks much

Too many questions, we need to answer one at a time on here, try the forums for a more in depth answer.