The logic to cycle selected markers wasn't cycling back to the beginning of the list. The marker after the selected marker at the cursor frame was also used to check if a selection existed, causing dragging to transform all selected markers to de-select all when when dragging the last marker.