In ValuesBuilder.php, within the buildXOPS method, you're double counting AB's in your calculation. Where you have:
$OBPDenominator = $this->addArray($player, array("AB", "BB", "HBP", "SF"));
$player["xOPS"] = ($OBPDenominator + $player["AB"]) * ($player["OPS"] - $overallAverage);
I think you should just have:
$OBPDenominator = $this->addArray($player, array("AB", "BB", "HBP", "SF"));
$player["xOPS"] = ($OBPDenominator) * ($player["OPS"] - $overallAverage);
In ValuesBuilder.php, within the buildXOPS method, you're double counting AB's in your calculation. Where you have:
$OBPDenominator = $this->addArray($player, array("AB", "BB", "HBP", "SF"));
$player["xOPS"] = ($OBPDenominator + $player["AB"]) * ($player["OPS"] - $overallAverage);
I think you should just have:
$OBPDenominator = $this->addArray($player, array("AB", "BB", "HBP", "SF"));
$player["xOPS"] = ($OBPDenominator) * ($player["OPS"] - $overallAverage);