Preheat the oven to 400 degrees . Spray a 3-quart baking dish with cooking spray. In a large pot of boiling water, cook the cauliflower until tender, 8 minutes; drain.
Using a blender, puree the cauliflower, chopped onion, milk, 1/2 cup parmesan and the flour; season with salt and pepper. In a small bowl, combine 2 tablespoons parmesan with the bread crumbs.
Spread 1/2 cup cauliflower puree in the prepared baking dish. Top with half of the potatoes, then with half of the zucchini. Sprinkle with half each of the sliced onions and remaining parmesan. Spread half of the remaining cauliflower puree on top. Layer with the remaining potatoes, zucchini, sliced onions, parmesan and cauliflower puree. Cover with foil and bake for 45 minutes, then discard the foil. Sprinkle the bread crumb mixture on top and bake until golden-brown, about 30 minutes. Let cool for 10 minutes before serving.