I want to say that you should work with someone closely to deploy your network.
To answer your initial question; In the simplest form, you can have 1 Vlan per site and create an ap-group and a virtual AP for each site and have 50 Vlans and 50 Virtual APs that simply assign the correct VLAN for each site (you would just duplicate the first Virtual AP and just change the VLAN). You could use NPS, because the VLAN would be defined by the Virtual AP and not any radius attribute. This approach can make your configuration very large however and there is the fact that you would have to create and maintain 50 VLANs on top of the VLANs that are already assigned for each site.
The other concern is tunneling; Depending on the latency between at your sites, if you have significant local traffic at the site, your users would have to send traffic to the controller and it would have to be routed back to the wired network at each site. If there is limited bandwidth between the controler and the site, that could make accessing local files for users very, very painful. For sites with significant local resources, I would consider placing a controller at that site, or bridging the user traffic locally so that there is no latency between users and their local applications.
In my limited view, for smaller sites, where all traffic is going back to the datacenter, it would be okay to have traffic tunneled to the controller. For other sites, where significant traffic still stays locally, it would be better to have the traffic bridged to the local wired network, where your existing infrastructure can route it. All Aps with sites where traffic is bridged locally can be in the same AP group and do not require any site-specific configuration; you could make them bridge to VLAN1 and all of the traffic would simply be sent to the physical local network untagged and obtain ip addresses from the local LAN so that you do not have to define VLANs and route them in your datacenter; it would leverage your existing wired network at those sites.
Again at the scale you would like to deploy, you should get a reseller or consultant so that they can advise you on the most efficient way to deploy your upcoming network. There are definitely ways to do everything you mention, but there are easier ways that do not involve duplicating the same thing 50 times.