you could also do ofSetRectMode(OF_RECTMODE_CENTER);
but anyway for future reference if you are in coordinate system A , but you want to do something relative to coordinate system B(say a rotation R) your matrix order should be A * B * R * inverse(B), so in your case. you did this.
mat.preMultTranslate(ofVec3f(200, 200, 0)); // takes you to coordinate system A
mat.preMultTranslate(ofVec3f(100, 100, 0)); // coordinate system B
mat.preMultRotate(ofQuaternion(rotation, ofVec3f(0, 0, 1))); // perform a rotation R relative to coordinate system B
mat.preMultTranslate(ofVec3f(-100, -100, 0)); // multiply by inverse(B) to take you back to coordinate system A