eForm has never supported form input arrays until recently and then only very limited. The problem is in a bit of very bad and dumb code which filters empty values from any POST array values by a double array_flip(). Don’t know what the author was thinking when he wrote that...
Replace this bit of code in eform.inc.php (approx line 156)
//<?php
# get user post back data
foreach($_POST as $name => $value){
if(is_array($value)){
//remove empty values
$value = array_flip($value);
unset($value['']);
$fields[$name] = array_flip($value);
} else
$fields[$name] = stripslashes(($allowhtml || $formats[$name][2]=='html')? $value:$modx->stripTags($value));
}
with this
//<?php
# get user post back data
foreach($_POST as $name => $value){
if(is_array($value)){
//remove empty values
$fields[$name] = array_filter($value,create_function('$v','return (!empty($v));'));
} else
$fields[$name] = stripslashes(($allowhtml || $formats[$name][2]=='html')? $value:$modx->stripTags($value));
}
This should fix the disappearing values, however you may run into other issues. eForm simply doesn’t deal well with multiple values for normal text input fields.
and for teh record,... yes the author of teh offending bit of code was me

and I’m surprised it hasn’t bitten anyone until now.