Hi,
We are using a technique that preserves the order of selected options in select2. This technique triggers an event change
after it reorder the options. So that might causes the duplication.
In reality, you might cache in the event listener to make sure your code run only once.