I have a similar issue. My client refers to it as effective dating. For tax audit purposes they need to report based on the hierarchy at a point in time in history. So using your member names:
In 2020:
Parent - SFO
Child - SFO_213
In 2021:
Moved to new Parent - California
Child SFO_213
When reporting for 2020 they want to reflect the SFO parent, but for 2021 the California parent. I would prefer not to create alt. hierarchies by point in time or copies of the application every time hierarchy changes are made. It would be nice to have a starting period for hierarchy changes.