Exploring alternatives to a tree view for selecting a person’s race

I work for a company that is software as a service for the social services industry. We're redesigning the race selection so that we can conform to the standard necessary for data exchanges in the health care space. This means that we must store our data to the HL7 Race specification, which gets quite complicated: https://www.hl7.org/fhir/v3/Race/cs.html

Because of the way the race hierarchy is constructed in the specification, a treeview control seemed like a natural fit. In practice, however, we're finding that it doesn't feel very intuitive to use. People are either not noticing that the nodes expand or, when they do, they feel like they need to fill it out to the most specific level. In general we're finding that selecting race is feeling unintuitive.

Some other possibly useful notes:

  • All levels of the hierarchy need to be recorded for reporting purposes.
  • There is high turnover in the social services space and the control needs to be usable with little to no training.
  • There will be a way to configure the control so that tiers below a certain level will be hidden for agencies that don't need them. However, some agencies will need to go down to at least the third level.

Here's an image that I think helps illustrate the problem.

problems with tree selection for race

I'm having a hard time taking a step back from this and seeing if there's an alternative to using a tree control for this. Does anyone have any suggestions for alternate controls or ways that a tree view can be better utilized?