How to add another field collection instances on Add Form page load programatically
I had to do this recently on a product.  What I ended up doing is copying the instance of the field collection and then looping through and creating them.  If your session variable keys are numerical from 0 on then you dont need the $item_count.  In my case it was not so I could not simply use the foreach($value as $key => $val).

$my_loop = array(); // Array of items with your default values
$item_count = 0;
$field_collection_clone = $form['field_my_field_collection']['und'][0]; // Clone the field collection form element

//Loop through and create a new instance of the field collection form
foreach($my_loop as $loop){
 $form['field_my_field_collection']['und'][$item_count] = $field_item_base;
 $form['field_my_field_collection']['und'][$item_count]['field_my_field']['und'][0]['value']['#default_value'] = 'my default value';
$item_count++;
}