Preheat oven to 350°F (180°C).
First, if using frozen cauliflower, drain out as much moisture from it as possible; otherwise, the casserole may become too watery. Set aside in a bowl to add in later.
If using eggplant, cut off the stems and slice into 1/2 inch (1 and 1/2cm) slices lengthwise. These will be used like lasagna layers in the casserole.
It is best to pre-grill or pre-roast the eggplants a little for about 15 minutes in the oven to make them a bit golden and semi-cooked. Don't let them get too soft, otherwise, it may be difficult to layer later, as they may break apart. Use the extra 2 tablespoons of olive oil for the eggplant as per the ingredients list.
Set the grilled/roasted eggplant slices aside on a paper towel to remove excess moisture.
Heat a large skillet over medium-high heat. Cook the chicken with one tablespoon of olive oil, just to sear it and make it golden. Don't cook it all the way through. Remove from the pan together with all the juices, set aside in a bowl.
To the same pan, add the remaining olive oil and saute the onions, garlic and Italian herbs just to brown them a little.
Add the chicken back in. Mix it all up and turn off the stove.
In a casserole dish, first layer eggplant to cover the bottom of the dish. Then layer the precooked chicken with onions, garlic and herbs.
On top of chicken layer the cauliflower, then marinara sauce and finally the cheeses.
Repeat the layers again if the height of the casserole dish allows. Finishing with the cheese on top.
Cover the casserole dish with aluminum foil. Bake for 30 minutes. Remove the foil and bake for another 10-15 minutes or until the cheese is desired color. You want a golden brown, bubbly top.
Garnish with fresh fresh basil before serving.