Using variable_set with associative array
The problem is not variable_get()/set(). It stores whatever you pass to it as a serialized array.

However, what you are saving are the keys of your array, because that's what is passed from the browser when submitting the form. This is also what is expected in the #default_value so it needs to be like this.

When accessing the information, all you need to do is get the intersection of your $details and the selected keys like this:

$selected_details = array_intersect_key($details, array_flip(variable_get('livembo_classes_details', array('c_id','c_cd_name')));


I would recommend to add a helper function which returns $details if you haven't already, so you can re-use that definition and a second helper function which contains the above code.