I examined the described problem and can confirm, that it's a bug in jqGrid. So +1 for you in any way.
The line
//if(i===0) { this.selected = ""; }
was commented after the fix which you referenced was made based on the problem with single selected selects. See the post. So I can suggest two ways to fix the problem:
1) replace the above comment to the following lines
// fix IE8/IE7 problem with selecting of the first item on multiple=true
if (i === 0 && elem.multiple) { this.selected = false; }
2) add instead of that after the $("option",elem).each(function(i){...})
the lines
// fix IE8/IE7 problem with selecting of the first item on multiple=true
var $first = $("option:first",elem);
if($.inArray($.trim($first.text()),ovm) < 0 && $.inArray($.trim($first.val()),ovm) < 0 ) {
$first[0].selected = false;
}
I am not sure which bug fixing is the most safe.
The demo can be used to reproduce the bug. One can use IE9, start Developer Tools with F12, choose IE8 as the "Browser mode" and choose "IE Standards" as the "Document Mode". After all one can select item "SM000237" in the grid and verify that "Accounting free" item are selected together with "Bank Fees" instead of selecting only the "Bank Fees".
The first and the second demos both fixes the bug and use the described above fixes.