I suppose that the problem exist because old data values will be not removed by jQuery("#myJqGrid").jqGrid('setGridParam', { data: data });
The above code works good with empty data, but it could worrk wrong if another (old) data already exist. What you can do is setting the data array using getGridParam:
var referenceToInternalData = jQuery("#myJqGrid").jqGrid("getGridParam", "data"); referenceToInternalData