That's because the object you are placing on the pipeline doesn't have a property called Name.
You can check by doing
$Datacenter.Uid.Split("@")[1].Split(":")[0] | Get-Member
It's just a string object. To sort those you can just do
$Datacenter.Uid.Split("@")[1].Split(":")[0] | Sort-Object