custom entityreference widget not saving field
For one, in your hook_field_widget_form, the $element should be built with a Union (like $element += array(...)) and not replaced. Refer this example at the api page.