I don't know if you use the PHP wrapper provided by MailChimp, but when I look at their function:
function listSubscribe($id, $email_address, $merge_vars=NULL, $email_type='html', $double_optin=true, $update_existing=false, $replace_interests=true, $send_welcome=false)
$merge_vars contains: array GROUPINGS = Set Interest Groups by Grouping. Each element in this array should be an array containing the "groups" parameter which contains a comma delimited list of Interest Groups to add.
There goes maybe something wrong when calling this function (only the last group is added). And it can be the solution of my other bug ( it has to be a comma delimited list, so when you not escape a comma in the name of the interest group, it will treat the group as two groups).