Writing image value to field_collection object
The column name for an image field is fid (not value), so you just need to change this bit of your $values array:

'field_bp_image_file' =&gt; array( LANGUAGE_NONE =&gt; array(array('fid' =&gt; $fid)), ),