How to generate building on surface

I have created 20 towers.

Each tower contains few mesh. Each tower is not with single mesh. Some are curve some have array modifiers some bevel etc.

I want to generate on a plane to make a city. With single mesh we can. I have created collection to divide the building small medium and large.

I have created a generation result collection and in that 3 collection (small medium and large). In the small medium and large collection i have divide the collection in the name s1 s2 for each building.

I tried to parent each building with the base of plane. But all mess. All the parts of the building distributed here and there.

Any solution how can i fix all the building on single plan to make a city. Thanks