I see just what your issue is now. Since you're using an X Grouping, and not an actual X variable, the indexing for the elements isn't standard. As per the docs:
obj << Get Element(xposition, yposition, i )
But, with an X Grouping, rather than an X, it seems that the first element isn't accessible with (1,1,1), (0,1,1), (.,1,1) or anything else I've tried. So, here's what I came up with: temporarily define an X variable so you can access the element, and then remove the X variable once you've made the changes you need. I find it entirely inelegant, but it works. I'll try to find out if there is a proper way to access the elements when no X is defined so you don't need this workaround.
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
//define an X temporarily
gbb << Add Variable( {:age, Role( "X" )} );
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
//remove the X
gbb << Remove Variable( {:age, Role( "X" )} );