Alright I had some stuff commented out that took me forever to debug, but I got it!
So the piece I was missing is that a View has both a Model and a SelectionModel. Obviously this is listed in the documentation, but I missed it. Here's the chunk of documentation regarding that:
Handling selections of items
The mechanism for handling selections of items within views is provided by the QItemSelectionModel class. All of the standard views construct their own selection models by default, and interact with them in the normal way. The selection model being used by a view can be obtained through the selectionModel() function, and a replacement selection model can be specified with setSelectionModel(). The ability to control the selection model used by a view is useful when we want to provide multiple consistent views onto the same model data.
Anyway, so it turns out all I needed was a subclass of QStringListModel to handle my data that I had already made, and I got lost in the sauce trying to turn that into a QItemSelectionModel, thinking it was a direct replacement for a Model. I guess I feel like it could be more clear that a View has both a Model and a SelectionModel attached as soon as you give it a Model, but it's there in the docs so I guess it's on me. :)
Thanks for the help!