Two solutions (these answers are from Ben! not me)
var pd1Seg = message.getNode('PD1');
message.removeAllNodes('PD1');
message.addChildAfter('PV1', 'PD1', pd1Seg);
var newMessage = message.getNode('MSH[group!=PD1]') + '\n';
newMessage += message.getNode('PV1') + '\n';
newMessage += message.getNode('PD1') + '\n';
message.setNode('/', newMessage);
var pd1Seg = message.getNode('PD1');
message.removeAllNodes('PD1');
message.addChildAfter('PV1', 'PD1', pd1Seg);