Hi,
Actually, you do not need to add the new BindingElement to the bindingsCollection.
I did some changes base on you script. It add a new BindingElement successfully without delete those BindingElement exists.
domain="try.com"
subdomain="hy"
'WebAdmin obj
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oBindingNew = oIIS.Get("BindingElement").SpawnInstance_
oBindingNew.BindingInformation = "*:80:" & subdomain & "." & domain
oBindingNew.Protocol = "http"
Set oSite = oIIS.Get("Site.Name='" & domain & "'")
oSite.Bindings= array(oBindingNew)
oSite.put_