How to allow users to 'add' values to a multi-value field but not edit any previously add values?
You can programmatically disable them in module like this:
function mymodule_form_alter(&amp;$form, &amp;$form_state, $form_id) {
   if($form_id == 'eck__entity__form_edit_ENTITY_NAME_BUNDLE_NAME') {
     $lang = $form['field_name']['#language'];
     foreach ($form['field_name'][$lang] as $key =&gt; $value) {
       if (is_numeric($key) &amp;&amp; !empty($value['value']['#default_value'])) {
         $form['field_name'][$lang][$key]['value']['#disabled'] = TRUE;
       }
     }
   }
}

Result