Place the onions and ginger directly on a medium-hot grill. Using tongs, rotate onion and ginger occasionally, cooking until slightly soft. Set aside.
Put cinnamon sticks, coriander seeds, peppercorns, star anise, and cardamom in a dry skillet and toast for five minutes to release the oil.
To achieve a clear broth, put both chicken and bones in a 10 quart soup pot. Fill water to cover the chicken. Bring to a boil over high heat; let it boil vigorously for 3 minutes to release the impurities. Pour the chicken and water into a clean sink, and then rinse the chicken and bones with cold water to wash off all residue.
Clean out the same pot and return the chicken and bones into the pot with grilled onions, ginger, all toasted spices, and vegetables.
Pour in the water. Bring to a boil over high heat and then lower the heat to simmer. Use a ladle to skim off any scum that rises to the top. Simmer for 45 minutes.
Remove the four chicken breasts and set aside. Continue simmering broth for one and a half hours.
Strain the broth through a fine mesh sieve. Add fish sauce and sugar, adjusting to suit your taste.