Organize filtered entries by a specific category
You should be able to order them using a combination of the order method (if needed) and group twig filter.

{% set productList = craft.entries.(params).order('title')|group('myCategoriesField.first().title') %}


The problem here is that the products might end up being displayed in the order that the size categories were created (i.e. postDate) and not the category 'size' title. If this is a problem then your solution may in fact be the only way. Have a look at this question for alternative answer and discussion of some of the issues.