You could apply your own rotation using a rotation matrix.
ROIxy = @(h)[h.Position(:,1),h.Position(:,2)];
rotMat = @(h,th)([cosd(th), -sind(th); sind(th), cosd(th)]*(ROIxy(h)-mean(ROIxy(h)))')' + mean(ROIxy(h));
To use the functions above, create a freehand object and they apply the rotation angle in degrees.
xl = xlim(); yl = ylim();
z.Position = rotMat(z,12);
 I don't know why the axis limits change when adding the + marker but this resets the original axis limits.
 rotMat(h,th) rotates ROI object h by th degrees (negative is CW rotation)