I assume that this the same query in your previous post. Given the nature of the query, you can expect a pretty wild plan like this. But I note that it is serial and not parallel, so there is reason to check for parallelism blockers.
I'm boarding a plane in a few minutes, so I don't have time for a full analysis, but I notice one:
,FORMAT(t1.Date, 'yyyy-MM') AS 'Mois'
FORMAT uses CLR under the covers and results in context switches which are expensive at this scale. This may also be your parallelism blocker. Change this to:
convert(char(7), t1.Date, 121) AS "Mois"
As for the residual I/O, i belive that only tells us that a predicate was pushed down to the storage engine.