How to add profile2 field data to a programatically created user
You need to create the new user's profile:

$profile = profile2_load_by_user($user-&gt;uid, 'ae_sa');
if(empty($profile)) {
  $profile = profile2_create(array(
    'type' =&gt; 'ae_sa',
    'uid' =&gt; $user-&gt;uid,
  ));
}

// Fill fields
$profile-&gt;field_full_name[LANGUAGE_NONE][0]["value"] = $fullname;
$profile-&gt;field_title_role[LANGUAGE_NONE][0]["value"] = $titlerole;
$profile-&gt;field_company[LANGUAGE_NONE][0]["value"] = $ucompany;
$profile-&gt;field_bio[LANGUAGE_NONE][0]["value"] = $bio;

// Save the newly created OR updated profile
profile2_save($profile);