How to copy the specific location and rotation of a falling down object with cloth physics?
It's natural to think that when you're using 3 vertices as the target of a constraint, that you're using a face.  But you're not, not quite.  You're still just using 3 vertices, and vertices don't have full transforms.  As zero-dimensional thingies, they don't have rotation or scale.  When you use a constraint that tracks a vertex group, you can reliably expect it to acquire the location part of the transform, but not the other parts.
You're using a child-of constraint here, but there are other constraints where this would be a problem as well.  Copy rotation, copy scale, copy transforms, etc-- for anything that needs more than a location from its target, vertex groups are unreliable targets.
Blender, bless its heart, sure tries to make it work.  It tries well enough that sometimes it works.  But it's unreliable.
Here, it's not working.  We can use different vertex groups and constraints, constraints that need only locations, to do what you want.
Let's create three vertex groups on Cube.004 (the target of your constraint.)  We'll assign all vertices on one face to a group called &quot;face&quot;.  We'll assign its two topmost verts to a group called &quot;z&quot;.  And we'll assign two verts on its side to a group called &quot;x&quot;.
Then we can replace our constraint.  Disable or delete the child of constraint, then create three constraints: a copy location, a damped track, and a locked track.  Each of these should target our old child-of target, but give each a different vertex group.  Copy location from face; damped track our Z axis to z; and then lock our Z axis to track our X axis to x:

All of our constraints use only the positions of vertices (the weighted average position) in order to define the rotation of our constrained object.  We're not acquiring scale, but that is much more complicated, and it doesn't look like it's something you want to acquire anyways.