Good question. I wanted to do the same, but ultimately ended up keeping my own list of selected records, and clearing it every time the user applied a sort to the columns (forcing them to rebuild the selection list after a sort).
The grid simply doesn't handle the "selected list" correctly when a sort is applied.