In a large bowl, mix parsley, cilantro, olive oil, paprika, saffron and ginger. Add juice of half of lemon. Coat fish fillets with mixture, cover and refrigerate for 1 to 2 hours. Cut other lemon half into 8 very thin slices.
Bring large sauce pan of water to boil. Drop tomatoes one at a time into boiling water and count to 10. Remove with slotted spoon and cool to room temperature. Peel off skin.
Place strainer over medium bowl. Cut tomatoes in quarters and remove seeds over strainer. With large spoon, rub seeds to extract juice into bowl. Coarsely chop tomatoes.
In a large sauce pan, combine tomatoes, their juice, garlic and cumin. Cook over medium heat, mashing and stirring occasionally, until sauce thickens slightly, 8 to 10 minutes. Season with salt and pepper. Set aside.
Preheat oven to 350 degrees F.
Place carrot slices in single layer on bottom of enameled casserole or Dutch oven. Cover with onion slices. Spoon tomato sauce over onions. Cover casserole tightly with aluminum foil, or cover of Dutch oven. Bake in middle of oven for about 30 minutes, until carrots are soft.
Remove from oven and place fish fillets on top of vegetables. Reserve marinade. Spread a little preserved lemon pulp on each fillet and top each one with 2 slices of lemon.
Pour reserved marinade around fillets and surround with olives. Return casserole to oven and bake, uncovered, for 20 to 25 minutes, until fish is flaky.
Spoon some of sauce over fish. Garnish with parsley or cilantro leaves. Serve over couscous if desired.