Your html code should look like:

<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
</head>
<body>
</body>
</html>

To insert title, meta and link as children of head using afterBegin you can use:

Sub AfterBegin()
   Dim strHTML As String
   Dim objHead As IHTMLElement
   Set objHead = ActiveDocument.all.tags("head").Item(0)
   strHTML = _
   vbCrLf & _
   vbTab & _
   "<title>" & _
   vbCrLf & _
   vbTab & _
   "</title>" & _
   vbCrLf & _
   vbTab & _
   "<meta>" & _
   vbCrLf & _
   vbTab & _
   "<link>"
   
   objHead.insertAdjacentHTML "afterBegin", strHTML

End Sub

Your HTML code will be:

<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
   <title>
   </title>
   <meta>
   <link>
</head>
<body>
</body>
</html>

Other methods to accomplish the same thing:

innerHTML, all 3 children at once

innerHTML, Child1, Child 2, Child3

innerHTML, Child3, Child2, Child1

innerHTML, Child1, Child3, Child2 using innerHTML

innerHTML, Child1, Child2, Child3 using outerHTML

insertAdjacentHTML "beforeBegin, strHTML

insertAdjacentHTML "beforeEnd, strHTML

insertAdjacentHTML "afterEnd, strHTML

Valid XHTML 1.0 Transitional        Valid CSS!