Around line 171 of class-cache.php you're doing:
foreach ( (array)$weight['tax'] as $tax => $weight )
Setting the inner value of that foreach to $weight destroys the original $weight, so a few lines below when you do:
if ( count($exclude_tt_ids) || count((array) $weight['tax']) || count($require_tax) )
$weight['tax'] is invalid, throws a notice, and it's always 0.