It took me hours to figure out how to do this. But I figured it out.
Step 1: Place the object you want Rotated/Double mirrored at the location you want.
Step 2: Add an empty at the point that you want the rotation to take place.
Step 3: Add a mesh to the same coordinates as your empty. Then go into edit mode and delete all the vertices.
Step 4: Add a boolean modifier to your empty mesh and select your desired object as a unity target.
Step 5: Add an array modifier to your empty mesh and set the offset to be the empty you created in step 2.
Step 6: Rotate the empty to whatever angle you desire.
Bam you have a rotated copy but get to keep the origin of your original object.
It also works with as many as you want.