If anyone happens to be interested, I found the solution. For the longest time I was thinking that there's something in the lua where if you click to add a specialist, it moves them over all the way to the right in the building and highlights them. Really, it's just a matter of the ordering of the buttons in CityView.xml (and CityView_small.xml), where the BuildingFilledSpecialistSlots are all listed before all the BuildingEmptySpecialistSlots. When clicking on a specialist, the lua enables the FilledSpecialist button and hides the EmptySpecialist button, which by virtue of the ordering in the xml means the filled button will be before all the other empty buttons.
To change this, I simply intertwined the two types of buttons, so I have BuildingEmpty...1, then BuildingFilled..1, then BuildingEmpty...2, etc. So if you click on a specialist to enable him, he stays put and doesn't shift over. super helpful for what i've been working on, so I'm glad I figured this out.