Duplicate, Translate and Rotate Quad so that edges meet

So the following code works if I have a default Quad of 1m x 1m unit dimensions. The edges of the duplicated quad align with the edges of the original. But this breaks if the quad is first scaled to other dimensions.

Is there a general formula that will work with quads of varying dimensions?

GameObject duplicate = Instantiate(original);
Vector3 offset = new Vector3(-.5f, .5f, 0);
duplicate.transform.Translate(offset, Space.Self);
duplicate.transform.Rotate(0, 0, 90);

would it work if multiply offset with original.transform.localScale?

Thanks but doesn’t work
Using this formula to multiply Vector3s

Vector3 VectorMult(Vector3 v1, Vector3 v2) {
    return new Vector3(v1.x * v2.x, v1.y * v2.y, v1.z * v2.z);
    }