In a directory, you’re ultimately listing entities – most likely businesses or people or something – but definitely entities. As you establish your site’s relationship to those entities, they most likely each have a page that gives details about them. There’s your listing page – and then a details page that talks about the entity, what it does, and whatever attributes of that you directory is highlighting.
Entities like “homes” – anchor pages that give out the details in terms of how your own entity/brand/site is related to them. For people we tend to make LinkedIn or other social media pages the “home” anchor – unless we can get Wikipedia of course. Businesses are often the same – or we use the “About Us” page.
In your case, you would have the directories AND individual versions of the details pages on each site. These end up being “different” even though they are the same and it might be difficult (even with schema) to convince Google you’re talking about the same entities in the same context other than serviceable region differences.
If you break the single site down into regions with one master set of detail pages for each listing – it’ll just be easier for Google to figure out the main entities you’re talking about and how they connect to one another (in terms of the serviceable regions your directory is broken down into as well as any other categorical filtering).
So while your ‘default’ initial presentation might be on a national level, people should be able to select to either go directly to business type, or to go to region.
The regional section shouldn’t be too fine-grained at the first instance, so people don’t end up landing on some town page from a Google search where you literally only have 1 business listed in that whole town, and it isn’t the type of business they wanted.
You’d probably want to ensure the directory always worked as a directory, with the ability to browse and not just search, so for that reason you’d want to think about splitting (having subdivisions on some criteria) any category that contains more than about 30 listings into sub-categories that will start with at least around 5 listings in them. That allows you to programatically and automatically handle granularity as the directory scales (or should some businesses close in one of the smaller categories).
That way, relatively rare companies, like, perhaps nuclear power stations, or energy suppliers, might only be divided by broad national region (e.g. North East England), while florists would certainly be listed at a city level, and possibly/probably larger towns. No category having more than 30 without some kind of sub-categorisation, and no category having less than 5, or something along those lines.