Whisk the vinegar, soy sauce, sugar, pepper, bay leaves, ginger and half of the garlic in a glass or ceramic bowl. Add the chicken and stir to coat. Cover with plastic wrap and place in the fridge for 30 minutes to marinate.
Heat the oil in a large heavy-based saucepan over high heat. Remove chicken from the marinade. Reserve marinade. Cook chicken, in 2 batches, for 3-4 minutes each side or until golden brown.
Transfer chicken to a plate and set aside. Remove and discard all but 2 tbs of the fat from the saucepan. Heat fat in pan over medium-high heat. Add the onion, chilli and remaining garlic and cook, stirring occasionally, for 5 minutes or until onion is golden brown.
Return chicken to pan with reserved marinade and water. Cover and reduce heat to low. Simmer for 30 minutes or until chicken is cooked through. Transfer the chicken pieces to a large serving bowl or platter. Place the sauce over medium-high heat and simmer for 10 minutes or until thickened slightly. Pour sauce over the chicken and sprinkle with the shallots.