I see that you've specified a Z offset value, but I don't see where you've actually raised the Z axis to clear the part. All you've done is created an offset and then cancelled it. Instead of using a temporary offset, why not just go back to incremental , specify a Z distance to clear, absolute back to start, increment back down the same amount you raised it.
Such as...
G91 Z1.0
G90 G0 X-27 Y-47
G91 Z-1.0
There's probably a hundred ways to get the job done, and really it just boils down to what you get accustomed to. Personally, I won't use an offset if I don't have to.