Theme the User Edit Profile page
I have figured this out.

The solution is to use approach 2 (in my opening post). However, in the template.php file, you have to remove all the dashes from the form ID (edit-profile-user-profile-form) and replace them with underscores.

So the code in template.php would be as follows:

function THENAME_theme(&amp;$existing, $type, $theme, $path) {

    return array(
        'edit_profile_user_profile_form' =&gt; array(
            'arguments' =&gt; array('form' =&gt; NULL),
            'template' =&gt; 'templates/edit/user-profile',
            'render element' =&gt; 'form',
            ),
    );


}

Next create a file called user-profile.tpl.php and save it in templates/edit.

In the user-profile.tpl.php file, use the following code to print out the fields:

&lt;?php print drupal_render($form['field_NAME_OF_FIELD']); ?&gt;