Hi Remco,
It seems very weird, Could you try having a local variable of type of product ID and store this id into selected product id. then try to append that selected id to the list.

and secondly,
Every time some one select or deselect you are sending list so, I would recommend to do something like.
Have an Boolean variable(default to False). now every time when user selects the product just filter the list by only selected items. then send trigger event. (By doing so you can reduce two operations).

Regards,
Rama