If I understood correctly you need to save values for both palettes on form submission. So both palettes should present on the form.
To solve this you can just hide one palette and show another on select value change. No server-side operation is needed (and zones is not needed too):
<t:select t:id="select" .../>
<t:palette id="widgets" .../>
<t:palette id="channels" .../>
And js using jquery:
var $select = $('#' + selectId);
var $widgets = $('#' + widgetsId);
var $channels = $('#' + channelsId);
$select.on('change', function() {
if ($select.val() == 1 /* or another value corespondent to channels */) {
$widgets.hide();
$channels.show();
} else {
$widgets.show();
$channels.hide();
}
});