dunno if this is what will work for you, but...
something that worked for me in Aloft was to
UIObject:SetAlpha() to zero (0).
a bit tricky with nameplates, as this leaves the frame assembly "invisible" but still sensitive to the mouse, which can generically affect clicking on the WorldFrame, but
Frame:EnableMouse() is also protected in combat (which resulted in disabled nameplate frame assemblies being recycled in combat, and then coming back into range assigned to a different unit but with the mouse still disabled; this might be less a problem with something static like a unit frame).
edit: depending on the nature of the object being hidden, it is my perception that
Region:Hide() can indeed be "protected" in combat. this is true of the root frame in a nameplate assembly, for instance.