You are doing it again. You call Foreach at event 11 and again at event 4, so every time you add and item, you call UpdatebagView, and then again for every item spawn an item.
Are you going to need to read the array from storage at some point and fill the bag again, or are you only filling the bag as each item is dragged in. This will make a big difference to the proper answer.