Eu acho que o que está acontecendo é que você quer a versão .NET 4 de TimeSpan.ToString () , que tem 2 sobrecargas, e você está obtendo a versão .NET 3.5 TimeSpan.ToString () , que não possui sobrecargas. Se você olhar para esta pergunta no StackOverflow, ele mostra como fazer com que o PS use o. NET 4 assemblies.
[Adição] Depois de criar o arquivo de configuração pelo link acima, consegui fazer o seguinte para executar com sucesso:
PS C:\Scripts > add-type -Path "C:\Windows\Microsoft.NET\framework64\v4.0.30319\mscorlib.dll"
PS C:\Scripts > $ts = New-Object -Type System.TimeSpan
PS C:\Scripts > $ts.Tostring("g")
0:00:00