How do I unset a region in template.php AND have it alter the body classes
If you look at the default template_preprocess_html, you will see

  // Add information about the number of sidebars.
  if (!empty($variables['page']['sidebar_first']) &amp;&amp; !empty($variables['page']['sidebar_second'])) {
    $variables['classes_array'][] = 'two-sidebars';
  }
  elseif (!empty($variables['page']['sidebar_first'])) {
    $variables['classes_array'][] = 'one-sidebar sidebar-first';
  }
  elseif (!empty($variables['page']['sidebar_second'])) {
    $variables['classes_array'][] = 'one-sidebar sidebar-second';
  }
  else {
    $variables['classes_array'][] = 'no-sidebars';
  }


If you don't want this behavior, you should implement your own version which will run after.  Then, you just check your condition and muck with $variables['classes_array'] as needed.