Duplications
The way to relatively safely indicate piece of duplicated content is by not including it as plain text, but rather as either a link to a document, or better yet an iframe.
This, however, will not mean that not unique content will be treated as unique. It will just explicitly indicate to an SE that this content is not meant to be read as unique.
Therefore, you're facing the problem of page quality. Will the pages be good enough to rank? Well, a typical SEO answer would be a pretty trivial advise to add more content. What if there's no more content? Then we solve the problem with proper linking, utilising UGC (user-generated content) and proper meta enrichment.
Meta and Schema
Geo meta tags that google uses are called hreflang. And they don't work with cities. It's only useful for multilang or international sites. Google parses content to determine city relevancy. So, city names, connections to local businesses, schema and such. Having city names in URLs is a good idea. And no, google won't penalize for the length of the URL. That era is long gone.
As it has been suggested before, you want to add some schema markup to each page, emphasizing the little unique information the page has. Local business, however, won't be a good schema object for it, however. This will probably work better: https://schema.org/ContactPoint Classically, there are about ten-fifteen schema objects your typical SEO specialists use. Really, however, schema contains hundreds of them. The reason why SEOs don't use the other objects is because google only explicitly shows how it uses the few popular objects. It, however, implicitly uses a lot more objects. In fact, it lets the AI build relationships with the non-explicitly used objects.
The conclusion here is: find what schema objects fit best, and implement them. Also, don't use json-ld. Use microdata markup. It's a little bit harder, but it works better when the content is sparse and your aim is more to enrich it rather than add more context to the page. No worries, if microdata is too inconvenient, go with json-ld.
Linking
Good linking is pretty easy to explain and achieve: make sure every country's page is easily accessible from the home page by regular links. Meanwhile, make sure to not make it look spammy. So maybe you want to break things down like so: Home page contains list of states -> every state page has a short description of this state's unique regulations/fees and how those are enforced/applied and a list of counties -> each county has some unique info about its relevant distinguishing factors -> list of cites. You probably want to skip the county part, depending on your taxonomy, or rather depending on how many cities you're covering. One greater city can still have multiple mayorships/municipalities that differ in regulations, covering which could inflate your unique content with relevant info.
Just keep in mind that generally, the faster a typical crawler can get from the home page to the target page (both measured in scrolls and distinct page loads), the better it is for ranking. To counter that, however (yes, checks and balances), search engines will penalize for too many links on a page. What is too many? No clear answer. AI determines it. Look at a typical forum. And a typical blog. They have different definitions of what a normal expected number of links is.
Also use html markup to format your links, don't just have them in a list. Make a table, format it adequately.
Modern SEOs love to use sitemap.xml to replace linking. Cuz it's so expedient. It doesn't work, don't bother. May as well delete it and won't notice any difference in traffic.
UGC
Just to add a bit of context, I normally work a lot with thin autogenerated content. Typically from tens of thousands to hundreds of millions pages. Without proper attention, pages like these would never be ranked. But once proper optimizations are applied and they start getting ranked, it's a lot of traffic. UGC is not applicable in a lot of cases, but your case seems like a good point for users to vent about their application issues.
It's unlikely that UGC will be needed here to get most of these pages out of supplemental results and to the real SERP, but if you see that these pages are not just ranking, but get actual traffic, I would also suggest adding "reviews" keyword to the bunch and let people leave reviews on local municipal bureaucracy. That will not only be a huge bump in tanking for these pages especially if used with proper schema markup, it will also potentially improve the quality of local civic services and duties.