How can I extract info from the user_profile array So I know that the $user_profile is basically an array. And when I use the DSM command with devel I saw all that info in the array, but how on earth do I begin extracting and displaying data from that?

I'm still not too keen on php, trying to learn as I go and on the side. I understand the concepts of an array and how to get top level stuff. But for those items embedded in other arrays embedded in yet more arrays, I'm not sure how to get to those and display them.

For a simple instance I just want to take the username of the profile currently being views and display it on a custom user-profile.tpl page. And I see it with devel, but I don't know how to get it.
In drupal 7 on the user-profile.tpl.php to which you refer the whole user object is loaded so you can output the different pieces you see in devel by doing this (a modification of the default user-profile.tpl.php you've copied to your theme):

Default:

&lt;div class="profile"&lt;?php print $attributes; ?&gt;&gt;
  &lt;?php print render($user_profile); ?&gt;
&lt;/div&gt;


Modified:

&lt;div class="profile"&lt;?php print $attributes; ?&gt;&gt;
  &lt;?php print render($user-&gt;name); ?&gt;
  &lt;?php print render($user-&gt;signature); ?&gt;
  &lt;?php print render($user-&gt;timezone); ?&gt;
  //and so on...
&lt;/div&gt;


On Drupal 6 the only difference is 

&lt;?php print $user-&gt;name; ?&gt; 
//dropping the render wrapper (which is good practice in D7 but is not used in 6)




As the questioner mentioned in the comments the above will display the currently logged in user's info.  To get the info of the user's page you are visiting (ex. YOUR_BASE_URL/user/2) you can do this (this will also work with aliased user pages):

&lt;?php 
   /*call this ($user_page_object) whatever you want but it is ill advised to
     call it $user as that will conflict with the $user object for the currently 
     logged in user*/
   $user_page_object = user_load(arg(1)); 
?&gt;
&lt;div class="profile"&lt;?php print $attributes; ?&gt;&gt;
   &lt;?php print render($user_page_object-&gt;name); ?&gt;
   &lt;?php print render($user_page_object-&gt;signature); ?&gt;
   &lt;?php print render($user_page_object-&gt;timezone); ?&gt;
   //and so on...
&lt;/div&gt;


And to access additional fields you may have added you can drill into the $user_profile array which contains those fields. (Which would've been added here admin/config/people/accounts/fields).

I recommend using the devel module to kpr or dpm (I prefer kpr) to look into those two vars, ie: 

&lt;?php 
kpr($user_page_object); 
kpr($user_profile);
?&gt;