복잡하다 - (crowded) problematic
혼잡하다 - (crowded) chaotic
복잡하다 can be complicated as well as congested/tangled
복잡하다 is used to ideomatically express crowdedness/businsss within a city especially with regards to traffic.
"서울시는 아주 복잡해요."
Can 너무 be used here?
In common usage, yes.
But personally, I understand "너무" as "아주 아주" i.e. a bit of an exaggeration of "아주".