If you've got more than two locations (and it's debatably a good idea I think even if you only have two) then you've got the right idea. Main location schema/NAP everywhere except for pages specifically relevant to other locations.
I'm a little confused about your question though... like... what about this is a challenge? If you have a few hundred locations of course, it might be worth the time to have a little database put together, and generate appropriate schema and such dynamically, but if you don't have a developer who can handle that, a forum post is a pretty small amount of space to line that out.
I use
JSON-LD... that means there's only one block of code you need to generate and drop in, instead of messing with a ton of in-line spaghetti on every page that's different. The fact that you're asking this question at all means you're probably not using a static website. If you're using wordpress, there's a ton of ways to do it. If you only have a couple locations, you could even make new footer.php files and write a little php to call the right one depending on the page, or you could make custom meta-data on the pages that need it that you use to fill in your footer file, or you could have a custom footer widget area, and just fill out your footer with widgets. There might be custom plugins that handle that too, though I cringe a little every time I go out looking for a new plugin to do some specific thing or other. I think Yoast might let you swap out Schema easily, but you've still got to deal with NAP changing in the footer somehow.
Whatever solution you pick, maintenance is going to be a consideration. Are you going to end up having to edit those footers a lot? Add more locations soon? etc. If you're going to need that to be easy to keep up-to-date, you might want to get a proper developer in for an hour or two to put that in place for you. It's easy enough it shouldn't take them longer than that.