Unless I'm missing something, I don't see the problem with your working either. Perhaps check whether you got the original concentration of $\ce{CaCl2}$ given in the problem right (the volume of the solution does not affect your final answer). The given answer may well be wrong, it's irritating but it does happen.
There is one thing I want to comment on though: never round off your answer too early. Since you obtained the intermediate answer of $801 \text{ mg}$, I am assuming you used a precise molar mass for $\ce{CaCO3}$ - I will take this to be $100.09 \text{ g mol}^{-1}$. (If you used the value $100$ you would have obtained $800 \text{ mg}$.) Your calculations should be:
- Number of moles of $\ce{CaCO3}$ formed upon addition of excess $\ce{CO3^2-}$
$$\eta_{\ce{CaCO3}} = (0.400 \text{ mol dm}^{-3})(0.02 \text{ dm}^{3}) = 0.008 \text{ mol}$$
- Mass of said $\ce{CaCO3}$
$$m_{\ce{CaCO3}} = (0.008 \text{ mol})(100.09 \text{ g mol}^{-1}) = 0.80072 \text{ g} = 800.72 \text{ mg}$$
- Hardness of water in $\text{mg L}^{-1}$
$$[\ce{CaCO3}] = \frac{800.72 \text{ mg}}{0.02 \text{ L}} = 40036 \text{ mg L}^{-1}$$
This is your final answer and if you want to round to the appropriate number of significant figures, you should do so only at this point. Your problem is that you rounded too early (after step 2) and this means you obtained an imprecise final answer, $40050 \text{ mg L}^{-1}$.
Here, the appropriate number of sf is technically 3, since the original concentration of $\ce{CaCl2}$ is given to you in 3 sf. Since you obtained the imprecise answer $40050 \text{ mg L}^{-1}$, you would have rounded this to $40100$. But if you stuck to the precise value at step 2 and obtained the answer $40036 \text{ mg L}^{-1}$, you would round this to $40000$.