SqlPS and PowerShell with Import-Module SQLPS different behaviors
This is how I alter TCP to use a specific port including enabling TCP at the end -- You have $Tcp.IsEnabled = $false is that correct?

[system.reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")|Out-Null
$mc = new-object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer .
$Instance = $mc.ServerInstances[$InstanceName]
#Change TCP Port
$TCP = $Instance.ServerProtocols['Tcp']
$AllIps = $TCP.IPAddresses['IPAll']
$AllIps.IPAddressProperties['TcpDynamicPorts'].Value = ''
$AllIps.IPAddressProperties['TcpPort'].Value = $Port
$TCP.IsEnabled = $true  
$TCP.Alter()


so I would do the following

[system.reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")|Out-Null
$mc = new-object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer .
$Instance = $mc.ServerInstances[$InstanceName]
#Enable TCP
$TCP = $Instance.ServerProtocols['Tcp']
$TCP.IsEnabled = $true  ## or false to disable
$TCP.Alter()