I am noticing that the value provided in the change listener for a select field is the display field value instead of the value field. Tracing this back to onListSelect setValue sets the display field value. same for the onPickerChange. It seems this should (and was in 1.1) the value field.
perhaps the fireEvent between onListSelect and the change event should be calling getValue()?