Про весь код не могу ничего сказать, а по смене статуса заказа с номером 1 и ид нового статуса 20 все правильно.
//id_order=1 and order_status=20
$objOrder = new Order(1);
$history = new OrderHistory();
$history->id_order = (int)$objOrder->id;
$history->changeIdOrderState(20, (int)($objOrder->id));