I made some modifications to this widget around line 900. See the code below. It sorts the fields based on the layer id. You may be able to add alias / order information to this to get the information on the screen corrected.
_queryByObjectIds: function(objectIds, returnGeometry){
var queryParams = new EsriQuery();
queryParams.returnGeometry = !!returnGeometry;
queryParams.outSpatialReference = this.map.spatialReference;
queryParams.outFields = this._getOutputFields();
queryParams.objectIds = objectIds;
var layerId = this._getLayerIndexByLayerUrl(this.currentAttrs.config.url);
if (layerId === 15){
queryParams.orderByFields = ["STATION"];
}
else
if (layerId === 16){
queryParams.orderByFields = ["DEPARTMENT"];
}
else
if (layerId === 17){
queryParams.orderByFields = ["STATION"];
}
else
if (layerId === 18){
queryParams.orderByFields = ["NAME"];
}
else
if (layerId === 36){
queryParams.orderByFields = ["SITE_NAME"];
}
else
if (layerId === 31){
queryParams.orderByFields = ["NAME01"];
}
else
if (layerId === 32){
queryParams.orderByFields = ["PARK_NAME"];
}
else
if (layerId === 33){
queryParams.orderByFields = ["Name"];
}
else
if (layerId === 29){
queryParams.orderByFields = ["Name"];
}
else
if (layerId === 30){
queryParams.orderByFields = ["AGENCY_CD"];
}
else
if (layerId === 38){
queryParams.orderByFields = ["NAME01"];
}
else
if (layerId === 39){
queryParams.orderByFields = ["NAME"];
}
else
if (layerId === 10){
queryParams.orderByFields = ["Name"];
}
else
if (layerId === 11){
queryParams.orderByFields = ["NAME"];
}
else
if (layerId === 13){
queryParams.orderByFields = ["Cemetery"];
}
else
if (layerId === 12){
queryParams.orderByFields = ["Precinct"];
}
var queryTask = new QueryTask(this.currentAttrs.config.url);
return queryTask.execute(queryParams);
},
Hope it helps.