Hi Rory,
I made an example script that will show some of the different things you can do with the properties and how you can implement this. My script is essentially useless for anything other than demonstration purposes as it just replaces the property value with the previous one.
def testSuiteProperties = testRunner.testCase.testSuite.getPropertyList() ;
def newPropValue = "Testing";
for(tsProperty in testSuiteProperties ) {
log.info "Showing the Name: "+tsProperty.getName();
log.info "Showing the Value: "+tsProperty.getValue();
tempPropValue = tsProperty.getValue();
tsProperty.setValue(newPropValue);
newPropValue = tempPropValue;
}