The approach you have described in your last post should work correctly. This makes me think that there might be something wrong with your custom visual items. Therefore, I would kindly ask you to open a new support ticket and send me a sample project which demonstrates this scenario. This will let me investigate it and provide you a solution. Alternatively, you can post your full source code here on the forums.
Generally, as I mentioned in a previous thread of yours, RadListView uses virtualization mechanism which means that the visual items stand for displaying the logical ones. At run time, each visual item is being detached and attached to different logical items so the check state should be kept in the data items.
I am looking forward to hearing from you.
the Telerik team