The entity selector uses the entity’s bounding sphere to figure out where it should go. This is where the bounding sphere for the entities is computed:
And this is where the viewer sets the indicator to be that computed bounding sphere center:
You could override that behavior in the source code, or expose a function in the API to expose a way to customize/override this (and it would be great to make a pull request contribution back into CesiumJS)!
You also just disable the selection indicator and listen for the selectedEntityChanged event on the viewer to detect when a selectedEntity has change and create your own indicator, which might be the easiest approach to customizing it in your application.