I'd suggest you use one of the Independent Civs (there are two) as the Confederates. Adding a new Civ in RFC requires a lot of programming, much of it in C++. If you don't know how to do this yourself, I doubt anyone is willing to walk you through it. (It would be less work to just do it for you. Perhaps someone wants to do this for you?)
The Natives are already in as a Minor Civ, but it would require almost as much work - and modding skill - to make them playable.
All UHVs are located in the Victory.py file but adding your own requires pretty comprehensive knowledge of Python. I know people who have successfully copied and altered pre-existing UHVs for their custom Civs, but the time spent on trial-and-error could have been spent on actually learning Python.

Then they could have had both custom UHVs and programming skill, but I guess not...
Dynamic city names are located in the CityNamaManager.py file and you'd pretty much have to add this information as part of your additional Civ. If you merely replace one of the existing Civs with you custom Civ - which isn't easy - then you'd of course have to edit the pre-existing city name map.
Seriously, just go with Independents as the rebel Confederates. The rest of your scenario could probably be done with
PyScenario - no programming required what-so-ever.

This is exactly the sort of thing the application is designed for!
And if you wanna change the "rules" of the game/mod later, then you can always learn Python. Its not Rocket Science, you know. (Its Computer Science.

) And from there it shouldn't be such a leap to C++ - figuring out how to compile the DLL might actually prove to be a bigger hurdle at that point. There is of course nothing stopping you from also adding the Confederate Civ eventually, but we all have to learn how to crawl and walk before we can run. So take it in strides!
