This is an offering to you, YT, not a criticism.
You have three different spice mixes in your curry. One reason there is little flavour is that you are preparing it in a water-based liquid. Most of the flavours in a curry are oil soluble, meaning you will need oil/fat/ghee to extract those flavours before a satisfactory product is produced. Leaving your water-based mix overnight is a very long winded way of trying to extract/develop those flavours.
Using your ingredients, I would start by frying the onions in a little oil/ghee until golden, but not brown. Then add pureed garlic and ginger and fry for a couple of minutes. Next add the raw spices coriander and cumin, and cook for about 3 minutes. Then add either curry paste or the curry powder (mixed with a little water) and fry until the water has gone. Now add the turmeric, fry for another 30 seconds, and add your chicken stock. Once boiling, turn down the heat a bit, add the tomato puree and then the coconut milk. Let it simmer a while, then add your chicken pieces and cook until just cooked (about 5-8 minutes, thats all). The curry should be full of flavour, and quite thick, else remove the chicken, and heat the liquid until you reach the required thickness. Do not add flour.
An alternative would be to fry the onions, then add the chicken, then the spices and garlic and ginger (I'm assuming fresh root ginger?). Fry until the chicken is a little browned, then add stock, tomato paste and the coconut. Heat until thickened enough. Do not add flour.
You should find a difference in flavour, the former should be lighter, the latter a little darker and with a nutty/roast flavour.
HTH
Waaza