My data is structured as follows - it's all means:
Urban/Rural - nested within Urban/Rural are White-Nonwhite... I don't want to compare Urban White against Rural White, but instead Urban White against Urban Nonwhite, and Rural White against rural Nonwhite.
Is there a better way other than doing a bunch of T tests?
This is a forum mainly for questions about R, not a stats advice forum.
If it is at all possible you need to consult with a statistician one--on--one. They can discuss what the research questions are, any assumptions you are making and so on and possibly do some basic exploratory analysis.
In a pinch, you are probably much better off asking for advice on https://stats.stackexchange.com/ which is a stats advice forum.
Probably there are any number of things that are better than t-tests but it is hard to say what without a lot more information.
As a simple thought Bayesian Hierarchical or multilevel models might be a good approach but I am just trying to master the simplest Bayesian principles so I am no help.
See Bayesian multilevel models | Stata and A Primer on Bayesian Methods for Multilevel Modeling — PyMC3 3.10.0 documentation for a bit of information on them. Again, you need a statistician if at all possible. If you are at a university or work for a large organization they should have a stats consultant stashed in a back room somewhere. University departments such as Sociology, Psychology, and Political Science will normally have faculty with a good background in statistics.
Just a clarification about this, it is true that this forum is mainly R focused but the forum scope is data science in general so it is completely fine to make a non programming stats question, although, as Jhon said, most likely your would have better luck asking on a specialized forum.