No, they will not always be the same instance. Here is the code I used to pull out 1 instance
var pid3Count = StringUtils.splitByWholeSeparator(message.getNode('PID-3'), '~').length;
for (var i = pid3Count; i > 0; i--) {
var pid3 = message.getNode('PID-3[' + i + ']');
if (StringUtils.endsWithIgnoreCase(pid3, 'UI')) {
message.setNode('PID-3', source.getNode('PID-3['+ i +']'));
break;
} else {
message.removeLastNode('PID-3[' + i + ']');
}
}