To quote terraform:
"In all cases it is recommended to keep explicit provider configurations only in the root module and pass them (whether implicitly or explicitly) down to descendent modules. This avoids the provider configurations from being "lost" when descendent modules are removed from the configuration. "
If the region needs to be changed relative to a root aws provider, just create another root aws provider for the other region and pass it to the module. All providers should be in the root module
To quote terraform: "In all cases it is recommended to keep explicit provider configurations only in the root module and pass them (whether implicitly or explicitly) down to descendent modules. This avoids the provider configurations from being "lost" when descendent modules are removed from the configuration. "
There is much pain and suffering now to remove the debris from state