Your problem is this line:
$tv = $modx->getObject('modTemplateVar','Project-Logo-Inverted');
It would work with the ID of the TV as the second argument, but if you're not using the ID, you need to specify the field you're sending like this:
$tv = $modx->getObject('modTemplateVar',array('name' => 'Project-Logo-Inverted'));
FYI, I think you could do it more simply like this in a plugin connected to OnDocFormSave:
if($resource->get('template') == 2){
$resource->setTVValue('Project-Logo-Inverted', $newValue);
}
return '';