In addition to Willk's answer, which may have discovered the age of some of your spice rack contents - cumin & other short-life ground spices can sometimes be flat even when new, from supermarkets. Whole seed, fresh ground on demand, can be shelf-stable for longer.
Also, I'd be inclined to use fresh or frozen ginger - pulped works well from frozen. Ground ginger has the wrong flavour profile.
Contra to expectation, garlic powder is often used in restaurant-style curry bases. Alternatively, frozen, pulped can be used, but sometimes I will add a bit of powdered near the end too. [Watch it doesn't go lumpy - premix with a little water if adding late to a sauce]
Also, hunt down some fenugreek powder for an instant 'Ooh, it's just like a curry' aroma. You can add this late in the cook.
I always consider a curry sauce to be a two-stage cook [same with a good chilli].
You get your 'bass' from the long cook, your 'treble' from what you add near the end.
Ground coriander goes in early, as part of your bhuna[1]/bhogar[2] [wet or dry frying] at the start. If you use tomato puree [by UK definition, the stuff in a squeezy tube] then use a wet-fry bhuna and add the puree late in this stage. It takes some bitterness out of it. Using a bhuna rather than bhogar makes it harder to burn stuff too - much easier if you're not practised at this.
Garam masala [basically a blend of aromatics] goes in late. If you can find them, such as ajwan seeds can add a piquancy late, or sprinkled over when serving.
Fresh coriander goes in right as you serve, or just sprinkled on top. Its flavour starts to dissipate as soon as it's heated. To keep it tasting bright & fresh… it has to be bright & fresh.
Some other things can go in both early and late.
Onions can be in your base sauce, then some newly-fried added ten minutes before serving. Processed tomatoes early, & fresh tomatoes late. The same for fresh chillies, some to cook down into invisibility, some late as a 'brightener'.
One additional thought… most people seriously underestimate the amount of oil/fat that goes in a curry. Your sauce base is essentially onion puree & ghee. There's really very little water added. Use ghee if at all possible rather than a cooking oil of any sort. It has a distinct flavour. Even vegetarian ghee has that flavour somehow added to it.
[1]Basic bhuna method.
Take all your ground spices & blend to a paste with a little water in a cup - aim for 'tomato ketchup' consistency.
Heat your ghee. If you have any whole spices, mustard seeds etc, drop them now [this kind of cheats in a quick bhogar without burning anything], then a quick stir & add your bhuna mixture. Fry gently until the water evaporates off & the oil fully blends with the sauce base, then starts to separate out again. Garlic/ginger puree can go in now. Keep it moving all the time to blend & prevent burning. Drop your onion puree & keep this going until your onions clarify. Watch out for it spitting, rather gloopily.
Salt to taste [but check again later after any other ingredients go in, under-salting will really weaken the flavours].
That's your base. Simmer for at least 2 hours.
Anything else after this point defines your "curry".
[2] The bhogar method is to fry spices directly in hot oil before adding any liquids. This can produce a more intense flavour, but is very easy to burn if not experienced. Bhogar is sometimes called tarka or tadka - I can only assume this is from different language origins, but I'm just a Brit & have no real clue on languages. Same applies to Balti vs Karahi, same thing, different place. Both originally referred to the small wok-like pan it was cooked in, not to what was cooked in it.
As regards your 'extra, late ingredients'
Paprika, fine; though there is a similar Northern Indian sub-continent version - Kashmiri Mirch. Similar to paprika in that it adds a lot of colour & flavour without adding any 'heat'. No need to be sparing with it, you can use a tablespoon or more.
Peri-peri salt - well, again OK as it's another red chilli very similar to bird's eye, though watch the salt levels.
Oregano/thyme - no, not really appropriate.
Cinnamon, clove - absolutely. Keep the quantities low, as each, like cardamom, can be overpowering if not used sparingly.
Late edit…
I only just noticed you have processed tomatoes and coconut milk in your recipe. That's an odd combination. Northern dishes would go with the tomatoes, Southern with the coconut. Keralan cuisine would use both, but the tomatoes would be fresh. The rest of your ingredient list would be better suited to a Northern dish, so I'd definitely lose the coconut next time. All of the above methods are 'Northern' methods too. Southern dishes use a lot of dry marinades, again contra to the suggestions above.
Also, depending on the 'wetness' of your tomato product, that's overall going to be way too watery. That's why my recipe idea above uses purée, to keep the added water content right down.