Your script didn't behave as you describe. When I ran your code, it applied the :age <<value labels() command to the first summary table, and it was already sorted and therefore in the correct order.
This modified code behaves as you describe. I don't have an answer for you as to why it is happening but maybe it will help someone else trouble shoot. I'm running JMP standard 11.2
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt = current data table();
// this will produce a correctly sorted table
Data Table( "Big Class" ) << Summary( Group( :age ), Link to original data table( 0 ) );
// and here is where thing go a bit funny
//as column(dt, :age) << value labels( {13 = "thirteen"} ); // <-- for some reason this doesn't change the "Big Class" table for me. It still changes the above summary table even though i specify dt. Use below code to fix it.
current data table(dt);
:age << value labels( {13 = "thirteen"} );
Data Table( "Big Class" ) << Summary( Group( :age ), Link to original data table( 0 ) );