Hi
So one thing to mention. While it seems like hey my DefaultSelectedItems etc are for sure working due to the collection.. Just because it looks like it does, doesn't mean it is.
Meaning, there are scenarios, where you will see the value, yet it wasn't put there by the Collection/Source, it simply hadn't been reset yet.
So I would repro, your steps, but before you actually remove/readd, stop the app and go to the Collections area and see if the persons value is really there.
I haven't parsed your giant string of code, however you mentioned that it doesn't "do" anything which then also means it didn't run (I don't think thats the case)
Here is what I ask you to do please, so we can easily debug it.
Go into your Button.
Starting at the Top Add a lot of Trace() statements all the way done, so that when the code runs it will log each section of that button code it hits and will help us figure out why it did nothing
After you add your Trace Statements, then publish your app.
Then (if you can repro your problem in the dev studio which is best), click the Stethescope, and run monitor (at the bottom).
Start your app and go all the way until BEFORE you click the button (at the time you expect it to do nothing)
Click back over to the monitor tab and Clear Data
Then go back to your app and click the button
When done, click back to the Monitor Tab, and in the Filter type Trace
And see which ones get triggered.. and which ones don't so you can understand for sure which logic ran and then we can easily figure out why.