Hello,
First of all, firegoblin, thanks for your active participation on our forum! :)
As to the initial question, the thing is that since the IP phone consists of numbers only, PowerShell automatically converts the value from the String type to the Integer type, and the TrimStart method is not supported for integers. To remedy the issue, you need to enclose the %ipPhone% value reference in double quotes.
Also, you can set the trimmed value with the help of Adaxes ADSI API without the need to use Adaxes cmdlets. This will make the script work faster and avoid unnecessary loads of Adaxes PowerShell Module. The resulting script will be:
$ipphone = "%ipPhone%"
$BOCMatching = $ipphone.TrimStart("91")
$Context.TargetObject.Put("otherIpPhone", $BCOMMatching)
$Context.TargetObject.SetInfo()