I don't know if your code has changed, but at one point $tpl was the *name* of a chunk, but I think you were using it as if it were an object.
You can try this (where $tpl is the name of the chunk from getOption() and you don't manipulate it in any way):
$output = '';
$resourceGroup = $modx->getObject('modResourceGroup', array('name' => 'name of resource group'));
$resources = $resourceGroup->getResources();
foreach($resources as $resource) {
if (! $resource instanceof modResource) {
/* error */
} else {
$resourceArray = $resource->toArray();
$output .= $modx->getChunk($tpl, $resourceArray);
}
}
return $output;