In WLRemoteObject.j, -activateRemotePropertiesObservation sets up the observation of the remote properties to detect changes.
However, the line:
[self addObserver:self forKeyPath:[property localName] options:nil context:property];
does not request the correct options for sending the old an new values to the observer.
I made the change:
[self addObserver:self forKeyPath:[property localName] options:(CPKeyValueObservingOptionOld | CPKeyValueObservingOptionNew) context:property];
and now the properties correctly get set dirty and the PUT is issued correctly.