Ordernumber is not the same as customer, and there could be two trousers of different sizes returned for the same ordernumber. But ignoring that, something like this should get you close, although without usable test data it's impossible for me to test it:
SELECT COUNT(*) AS [Total Order],
SUM(CASE WHEN Total_Return = 0 THEN 0 ELSE 1 END) AS [Duplicate Returned Order]
SELECT Ordernumber, Size, SUM(Sale) AS Total_Sale, SUM(Return) AS Total_Return
WHERE Description LIKE 'Trouser%'
GROUP BY Ordernumber
) AS derived
I suspect something like the following will get what you want in terms of finding all the orders where a customer ordered multiples of the same thing in different sizes and then returned some of them. There are edge cases that it doesn't cover, such as a customer order 2 size 36 trousers and 2 size 34 and then returning 1 of each, the logic may get considerably more complex if that's important to distinguish but the principle is roughly the same.
group by OrderNumber,ProductCode
count(size) > 1 -- More than one size of same item
and sum(sale) + sum([return]) > 0 -- Not all were returned
and min([return]) <> 0 -- but at least some were returned
order by OrderNumber,ProductCode
It should be fairly straightforward to integrate that into a full overview report if needed