You could use the drawcuboid function to construct your cuboidal bounding box around a volume. I am attaching an example script below, I hope it will help you get started:
limits = [NaN NaN NaN NaN NaN 10];
[x, y, z, D] = subvolume(D, limits);
[fo,vo] = isosurface(x,y,z,D,5);
[fe,ve,ce] = isocaps(x,y,z,D,5);
p1 = patch('Faces', fo, 'Vertices', vo);
p2 = patch('Faces', fe, 'Vertices', ve, ...
roi = drawcuboid(gca,'Position',[15 15 0 95 120 10],'InteractionsAllowed','none');
Please check the Position argument accepts the cuboid information in the form of a 1 by 6 vector defined as [xmin ymin zmin w h d] where (xmin ymin zmin) is the lower left vertex of the cuboid. So you need to be careful about the 1 by 6 bounding box information given by regionprops3 as they might not be what drawcuboid expects. Note: regionprops3 returns Smallest cuboid containing the region, returned as a 1-by-6 vector of the form [ulf_x ulf_y ulf_z width_x width_y width_z]. ulf_x, ulf_y, and ulf_z specify the upper-left front corner of the cuboid. width_x, width_y, and width_z specify the width of the cuboid along each dimension.