selecting hierarchical select values during migration
Dunno why my last message has been deleted but well I founded the answer alone :
In order To make it work, you have to pass an array of values containing the terms tid values and their parent's tid.
You might have to use a callback that retrieve the parent tid from the children one.

I am migrating contents from drupal 6 to 7, not from a csv, but I've declared a static function containing the mapping between the old tids and the new ones like so :

public static $hierarchicalThemesToTheme1TidsMap = array(
  '1'     =&gt; array('tid' =&gt; '13', 'parent' =&gt; '0'),
  '1797'  =&gt; array('tid' =&gt; '14', 'parent' =&gt; '13'),
  '14993' =&gt; array('tid' =&gt; '15', 'parent' =&gt; '13'),
  '1801'  =&gt; array('tid' =&gt; '16', 'parent' =&gt; '13'),
  '59'    =&gt; array('tid' =&gt; '17', 'parent' =&gt; '13'),
  '1795'  =&gt; array('tid' =&gt; '18', 'parent' =&gt; '13'),
  '1796'  =&gt; array('tid' =&gt; '19', 'parent' =&gt; '13'),
  '1798'  =&gt; array('tid' =&gt; '24', 'parent' =&gt; '13'),
  '1799'  =&gt; array('tid' =&gt; '23', 'parent' =&gt; '13'),
  '1811'  =&gt; array('tid' =&gt; '42', 'parent' =&gt; '0'),
  '1812'  =&gt; array('tid' =&gt; '42', 'parent' =&gt; '0'),
  '1813'  =&gt; array('tid' =&gt; '42', 'parent' =&gt; '0'),
  '1800'  =&gt; array('tid' =&gt; '20', 'parent' =&gt; '42'),
  '1802'  =&gt; array('tid' =&gt; '21', 'parent' =&gt; '42'),
  '1803'  =&gt; array('tid' =&gt; '22', 'parent' =&gt; '42'),
  '1804'  =&gt; array('tid' =&gt; '18', 'parent' =&gt; '13'),
  '1805'  =&gt; array('tid' =&gt; '18', 'parent' =&gt; '13'),
  '62'    =&gt; array('tid' =&gt; '25', 'parent' =&gt; '0'),
  '1806'  =&gt; array('tid' =&gt; '26', 'parent' =&gt; '25'),
  '1807'  =&gt; array('tid' =&gt; '27', 'parent' =&gt; '25'),
  '64'    =&gt; array('tid' =&gt; '28', 'parent' =&gt; '25'),
  '1808'  =&gt; array('tid' =&gt; '29', 'parent' =&gt; '25'),
  '1809'  =&gt; array('tid' =&gt; '30', 'parent' =&gt; '25'),
  '61'    =&gt; array('tid' =&gt; '32', 'parent' =&gt; '0'),
  '1723'  =&gt; array('tid' =&gt; '33', 'parent' =&gt; '32'),
  '1724'  =&gt; array('tid' =&gt; '34', 'parent' =&gt; '32'),
  '1725'  =&gt; array('tid' =&gt; '35', 'parent' =&gt; '32'),
  '1726'  =&gt; array('tid' =&gt; '36', 'parent' =&gt; '32'),
  '1727'  =&gt; array('tid' =&gt; '37', 'parent' =&gt; '32'),
  '1728'  =&gt; array('tid' =&gt; '38', 'parent' =&gt; '32'),
  '1729'  =&gt; array('tid' =&gt; '39', 'parent' =&gt; '32'),
  '1730'  =&gt; array('tid' =&gt; '40', 'parent' =&gt; '32'),
  '1731'  =&gt; array('tid' =&gt; '41', 'parent' =&gt; '32'),
  '1810'  =&gt; array('tid' =&gt; '43', 'parent' =&gt; '13'),
  '4401'  =&gt; array('tid' =&gt; '44', 'parent' =&gt; '13'),
);


I had to do that because we didn't use migrate for the taxonomies. I guess there's a better way if you had use migrate to import your taxonomies.

Then I've declared a callback which use that static array to retrieve the tids and their parent tid :

public function getHierarchicalThemeByTids($tids) {
  $mapped_tids = array();

  foreach($tids as $tid) {
    $mapped_tid = FOMigration::getMappedId(self::$hierarchicalThemesToTheme1TidsMap, $tid, NULL);
    if($mapped_tid !== NULL) {
      $mapped_tids[] = $mapped_tid['tid'];
      if (!in_array($mapped_tid['parent'], $mapped_tids)) {
        $mapped_tids[] = $mapped_tid['parent'];
      }
    }
  }
  return $mapped_tids;
}


Finally I just tell migrate he has to use that callback to get the values :

$this-&gt;addFieldMapping('field_types', 'field_theme')-&gt;callbacks(array($this, 'getHierarchicalThemeByTids'));
$this-&gt;addFieldMapping('field_types:source_type')-&gt;defaultValue('tid');