Got it! It appears that selectedItems is dependent on the data being *absolutely identical* to the dataProvider. And while I thought my data was identical, it really wasn't. In the debugger, if you look at a variable, its always: "Array (@123456)". What I found was that although the data was definitely the same, that number was not.
To fix the problem, I centralized all data to go through one data manager, whereas before I was reinitializing a different data component in each component. So now, I'm basically calling parentApplication.dataManager.someFunction () from all of my components. This isn't good quite frankly, but by doing so, the @123456 is always the same. If anyone else can think of a better way, I'm all ears...