DBATools - pass through flat file configs to Agent Job Commands
Well, 4 hours ago self... if you had bothered to inspect the types of $foo and $bar, you might not have wasted a whole afternoon swearing loudly in your open office floor plan as you scroll fruitlessly through the documentation...

~&gt; ($foo | Get-Member).TypeName[0]
System.Management.Automation.PSCustomObject

~&gt; ($bar | Get-Member).TypeName[0]
System.Collections.Hashtable


There's even a convenient, generalized solution on this very Q&amp;A Network for converting a PSCustomObject into a HashTable. 

$foo.psobject.properties | foreach -begin {
    $foo=@{}
} -process {
    $foo."$($_.Name)" = $_.Value
} -end {$foo}

~&gt; New-DbaAgentSchedule @foo -ServerInstance "." -SqlCredential $sa


Easy peasy, lemon squeezy.

So splat away, ya big crazy. And when you're done feeling stupid, maybe share the workaround online in case it helps someone else. And if you're feeling super proactive, maybe consider setting aside some time to contribute to the module.