Is there any way the the total channel list (from which you select individual channels to go into channel groups) can be split into different lists for each card.
INSERT INTO GroupMap (idGroup, idChannel, SortOrder)
SELECT 3, idChannel, SortOrder FROM GroupMap
WHERE idChannel NOT IN (SELECT idChannel FROM GroupMap WHERE idGroup <> 1)
INSERT INTO GroupMap (idGroup, idChannel, SortOrder)
SELECT 3, idChannel, SortOrder FROM GroupMap
WHERE idChannel IN (SELECT idChannel FROM ChannelMap WHERE idCard = 2)