Are you using the DevEx version of Cabana? If so, look at the Admin module. It contains two examples of using a proxy object to display and edit a many-to-many relationship (in this case the associations between users (or groups) and privileges ("security codes"). A similar technique might work for your application.
Bill J.