Rotation-projection to new coordinate system

This seems more or less a basic question. I had kinda solved my problem until recently when I discovered some rotations were incorrect.
I have a set of objects that need to rotate. After each update call, I receive a new set of Vector3 , all perpendicular to each other that need to be my new coordinate system. At the first frame I have the initial 3 vectors, and while the game continues i need to continually update the objects to rotate (from a pivot point) so they satisfy the new coordinate system.

Is this possible with a basic operation or quaternion logic that I couldn’t find so far?
Thanks in advance

Vector3 CoordinateDirection = Any point on the positive z axis of the new coordinate system;
Vector3 ToRot = Quaternion.lookRotation(CoordinateDirection).eulerAngles + transform.eulerAngles;
transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(ToRot), time.deltaTime * 7);

This’ll do it for you. I’m not very familiar with quaternions so I converted them to euler angles for the operations. The last line simply gradually pivots the object to the destinatino.