This is how I accomplished different template files for each Profile2 Edit Page.
First, form_alter to set up the form #theme properly
function THEME_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'user_profile_form') {
if ($form['#user_category'] === 'writers') {
$form['#theme'] = 'profile2_writers_edit_form';
} else if ($form['#user_category'] === 'secondary') {
$form['#theme'] = 'profile2_secondary_edit_form';
} else if ($form['#user_category'] === 'main') {
$form['#theme'] = 'profile2_main_edit_form';
}
}
}
Then you can set up the templates this way
function THEME_theme() {
return array(
'profile2_writers_edit_form' => array(
'arguments' => array(
'form' => NULL,
),
'template' => 'profile2-writers-edit',
'render element' => 'form',
),
'profile2_secondary_edit_form' => array(
'arguments' => array(
'form' => NULL,
),
'template' => 'profile2-secondary-edit',
'render element' => 'form'
),
'profile2_main_edit_form' => array(
'arguments' => array(
'form' => NULL,
),
'template' => 'profile2-main-edit',
'render element' => 'form',
),
);
}
Now all you have to do is add the files to your theme folder and clear cache. In this case I ended up with the following files for Profile2
profile2-writers-edit.tpl.php
profile2-secondary-edit.tpl.php
profile2-main-edit.tpl.php
A basic tpl should look something like this
<article id="node-user-edit" class="profile2-user-edit writers-profile">
<?php print drupal_render_children($form); ?>
<?php print drupal_render($form['#submit']); ?>
</article>
Print fields singularly like so
<?php print drupal_render($form['FIELD_NAME']); ?>