When an odd number of consecutive private fields are removed from view, it causes the "zebra" table to display the same color twice, for example "gray|white|gray|white" would become "gray|gray|white" if a single field is removed.
This is caused by this code in bp-xprofile-templatetags.php:
if ( $profile_template->current_field % 2 == 1 )
$css_classes[] = 'alt';
(every other field gets the 'alt' CSS class)
This code needs to be either removed, or a filter such as this one applied into functions.php:
function my_filter_empty() { return ''; }
add_filter('bp_get_field_css_class', 'my_filter_empty', 1, 1);
Since the table itself already has the 'zebra' CSS class applied to it, jQuery automatically applies the 'alt' class to every other row, so the code above is completely redundant and will hopefully be removed in the next version.