When you use Select-Object, you’re still producing a complex object with properties, as you’ve seen.
Get-ADComputer -filter * | Select -Expand Name | My-Function
Is one option. Extract (expand) the contents of the Name property so that it hits your function ByValue. Or,
Get-ADComputer -filter * | Select @{n=’computername’;e={$_.name}} | My-Function
Produces an object having only a ComputerName property, which hits your function ByPropertyName.
All in “Learn Windows PowerShell 3 in a Month of Lunches,” if you’re interested .