I replicated your problem. I didn't use VirtualMode though so my checkboxcolumn retained its value properly when other cells were clicked.
DataGridView doesn't "remember" a value that was set for unbound combobox. It has to be stored manually in some way. The value will reset every time DataSource is touched (for example after sorting) and when you change cells (since you use VirtualMode)