Okay, so it's to do with the way Matlab holds the object in memory. Changes to properties doesn't appear to change the original value defined in the constrcutor. Instead it makes the change to a copy of the parameter. Appending '< handle' to the class definition allows you to change the original parameter values on the fly, i.e.,
classdef MyClass < handle
properties
methods
end
Whilst this fixes my problem, I'm a little loss for the reason for this extra layer of complexity. Perhaps I'm to used to C++, but the OOP functionality in C++ certainly seems more intuitive.