Form alter overriding submitted values
You need to check values of checkbox field in $form_state while setting it "checked" in line 

$form['field_show_end_date'][LANGUAGE_NONE]['#attributes']['checked'] = 'checked';


This would be something like 

$form['field_show_end_date'][LANGUAGE_NONE]['#attributes']['checked'] = isset($form_state['values']['field_show_end_date'][LANGUAGE_NONE][0]['value']) ? $form_state['values']['field_show_end_date'][LANGUAGE_NONE][0]['value'] : 'checked';


I haven't tested this code, but it should work just fine or it will give you idea about how to fix your problem. Hope it helps...cheers!