Well, I did many open maps and had lots of problems with them too.
There aren't many things to do to prevent overloads, IMHO.
-The first and obvious is sv_zmax. Nuff said.
-The second one (which saved me recently) MAY come very handy - the "maxdistance" parameter of hlvis (or hlbsp.. or whatever
). It GREATLY helps reducing amount of visible nodes (often behind walls, or barely visible). While the compiler normally refused to cut out some distant rooms (even around bends), this option, in certain places, saved me almost 10 to 30 FPS!! I see you actually have some divided spaces on your map, so it may help.
Cutting out distant/invisible entities (including players) is far more desirable than struggling over map's polycount. Especially in multiplayer games. Good luck!