First of all, you need to get over the notion that talkgroups "belong" to any particular site. Any talkgroup can be transmitted from any site in the system at any time, depending on the purpose of the talkgroup, the geographic area covered by each site, and the boundaries of the service area of the entity using the talkgroup. A talkgroup may be broadcast from one site, a group of sites, or every site in the system. It all depends on the needs of the users and how much redundancy is required (is a backup site needed if the primary site fails?). In some cases, a talkgroup may be broadcast from a site in a neighboring town or county if it provides better coverage. Some sites use directional antennas to send their signal mostly in one direction, and minimize "spillage" outside the intended coverage area (e.g. a site located near the border of a state or county).
Breaking up a system by site and agency is bad programming practice. What you want to do (if your scanner will allow it) is program the entire system, including all sites (at least all sites within reception range of your location) and talkgroups, into one list. Then instead of toggling scanlists on and off, toggle groups of talkgroups within the system on and off instead (Uniden calls them Departments, I forget what Whistler's term is). You may need to move talkgroups from one group to another if the RR database doesn't have them organized to your liking.
Programming the same system multiple times for each site or agency on the system takes longer to scan, takes up more memory, and guarantees you will miss more traffic. When you are scanning one site looking for fire traffic, any PD traffic during that scan will be ignored. And when you scan the same site for PD traffic, fire traffic will be ignored. Programming the entire system together allows you to hear any traffic of interest on a site when you scan the site, regardless of type.