Is it happening just on creating a new page or editing an existing page, or both?
Here is what i would do..
First, make sure you're getting copied on the error emails in your _config.php:
Debug::send_errors_to('myemail@address.com');
Director::set_environment_type('dev');
If you're not getting a specific error report, then you can start hacking up the code to see where the problem is. Since getCMSFields() is the main function that runs when creating a page, strip out all the code and leave it as just
public function getCMSFields()
{
$f = parent::getCMSFields();
return $f;
}
See if it works then. If it does, go back to the original code and start removing form fields from the function until you find the line that's causing the problem.
Let me know how you do.