Palette, like the listmultiplechoice component, modifies the object (a list) in-place. Both components have the same behavior in their updateModel documentation, but the implementation differs. Whereas ListMultipleChoice invokes getModel().setObject(), Palette uses setDefaultModelObject(). This has the consequence that it never invokes the setObject method as that is guarded by a model comparator.
Suggested fix is to use the same logic in both updateModel implementations.