add_post_meta | update_post_meta | Via the frontend

So I was really overthinking this problem. Hopefully my answer can help someone in the future. Basically all I needed to do was save the array from wordpress and check to see if the user_ID (Associative Array Key) was in the Array, if it was and the user needed to change the value I needed to search throughout the array replace the value and update that array. If the User has never made a selection before, just needed to add his selection to the array.

<?php 
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_post") {

    // Do some minor form validation to make sure there is content
    if (isset ($_POST['charity_name_form'])) {

        $title =  $_POST['charity_name_form'];
        $user_ID = get_current_user_id().'_ID';
        $user_choice = array($user_ID => $title);


        $meta = get_post_meta( get_the_ID(), 'user_charity');
        $array_location = $meta[0];
    // THIS CHECKS TO SEE IF USER HAS MADE A SELECTION BEFORE, IF HE HAS AND UPDATES HIS SELECTION THE VALUE CHANGES
        if (isset( $array_location[$user_ID])){ 

            $new_array = array();
            foreach ($array_location as $key => $values){
                $new_array[$key] = $values;
            }
            $new_array[$user_ID] = $title;

            update_post_meta(get_the_ID(), 'user_charity', $new_array);

        }
        // IF USER NEVER SELECTED A CHARITY HE SELECTS ONE
        else {
        // TAKES OLD ARRAY AND PUTS IT IN NEW EDITABLE VARIABLE
            $new_array_add = array();
            foreach ($array_location as $key => $values){
                $new_array_add[$key] = $values;
            }
            // ADDS THE NEW USER SELECTION TO THE PREVIOUSLY SAVED ARAY
            $new_array_add[$user_ID] = $title;
            // UPDATES THE META WITH THE NEW ARRAY VARIABLE
            update_post_meta(get_the_ID(), 'user_charity', $new_array_add);
        }      
    }

}

?>