Here is the closest thing I can come up with but the position is not correct.... The parent's goal position is what I am trying to determine. Any help is appreciated!
Quaternion rotation = goal.rotation * Quaternion.Inverse(child.rotation) * parent.rotation;
parent.MoveRotation(rotation);
Vector3 position = goal.position + (Quaternion.Inverse(parent.rotation) * child.rotation) * (parent.position - child.position);
parent.MovePosition(position);
If I understand your graphic correctly what you have is
and what you are trying to achieve is
You are somewhat pretty close.
Ignoring the scale (assuming there is no scaling involved in the entire hierarchy until the parent object) basically you can simplified say
We already know
so you can resolve the rest in the order
Little demo
However, if there is also scaling in play this will probably get more complex!