The best approach, I think, is to separate the players and the NPCs by Plot! The NPCs get kidnapped, detained, lost, side-tracked, bogged down, diverted, or called away, but in a way that is meaningful to the players. They are not just “put on a bus” in the TV Tropes lingo, but somehow the plot separates them and reuniting becomes a major motivator.
Occasionally catching up with some of them briefly, before they too are called away, allows you to give the players “doses” of the NPCs, to keep them looking for more and to satisfy their desire to interact with them. Another great tactic to use is to have the players trailing behind some of the NPCs, so that people they spoke to have stories to tell about their exploits.
This kind of crossing of paths limits how much you have to portray the NPCs while maintaining their relevance and significance in the world. It can actually make the world seem more alive and dynamic, because you can demonstrate to the PCs that the world isn’t just revolving around them: these NPCs are also off doing things and it matters.
It works best if you don’t scoop them away all at once (unless the plot calls for something that cataclysmic), but gradually, for different reasons. Maybe it starts when one person or group gets kidnapped, and then everyone gets into high gear, splitting the group so that the different NPCs are all doing things while the PCs are simultaneously doing other things. Best case scenario, you lay out the reality of the situation, and let the players come to the conclusion that splitting up is the only way to cover enough ground to get everything done in time. That approach has worked well for me.