As I explained in this link ,this is bug in
finally i found your mistake in your code , in hs_taxonomy.module in function hs_taxonomy_hierarchical_select_root_level($params) you don't consider $params['root_term'] and in every hs this item bypassed by 0 value
<?php $terms = _hs_taxonomy_hierarchical_select_get_tree($params['vid'], 0, -1, 1); ?>
<?php $terms = _hs_taxonomy_hierarchical_select_get_tree($params['vid'], $params['root_term'], -1, 1); ?>
if user not set parent in content_taxonomy settings for term reference it passed 0 by default.
please apply this patch to your module. just notice for this work correctly you want select (not duplicate second level select option) Save term lineage in Hierarchical Select configuration in Save lineage part. i test it ,working like a 'BENZ'