user-profile.tpl.php and render($user_profile) not working
In order to have the $user_profile renderable array available within your tpl, you can use the same logic used by Drupal user core module.

Build the content for a user object, loop through each field and assign it to the $user_profile variable.

In your case, it would something like this:

function mytheme_preprocess_user_profile_form(&amp;$vars) 
{
    // load user
    $account = user_load(arg(1));

    if (!$account) {
        // user not found
        return;
    }

    // retrieve all profile fields and attach to $account-&gt;content.
    user_build_content($account);

    // loop through each field attached to the user object
    $vars['user_profile'] = array();
    foreach (element_children($account-&gt;content) as $key) {
        // add it to the $user_profile variable, which will be available in tpl
        $vars['user_profile'][$key] = $account-&gt;content[$key];
    }

    $args = func_get_args();
    array_shift($args);
    $form_state['build_info']['args'] = $args;
    $vars['form'] = drupal_build_form('user_profile_form', $form_state['build_info']['args']);
}