The problem is, you formatting function receives only a first of array items. Dojo doesn't handle arrays as you would like. You need to format data before passing to dojo:
for (var i=0;i<items.length;i++) {
if (items[i].personNames instanceof Array)
items[i].personNames = items[i].personNames.join(', ')
}