Можно ли вот так разделять класс?
Работать это будет. Если опишите в чем цель, возможно будет более адекватное решение. (например трейты)
Но если вы "разделяете" класс, т.к. в нем много методов и вы хотите их структурировать, это значит изначально что-то пошло не так.
Если нужно работать в рамках одного экземпляра класса то можно попробовать такclass A{
  public $val = 10;
  public function method1(){
    $m2 = new B($this);
    return $m2->method2();
  }
}

class B {
  public function __construct($obj) {$this->obj = $obj;}
  public function method2(){
    return $this->obj->val + 1;
  }
}

$a = new A();
echo $a->method1();
Правда все методы и свойства класса должны быть только публичными, но судя по всему это не критично.