Presumably you are calling this macro from another Office application? That being the case there are a number of issues.
If you are using late binding to Word, then wdApp must also be defined as an object.
You have set the range to the selection before the document is opened, and in any case it is better to work with ranges and not the selection.
The following will do the job
Sub NewLetterhead_Template()
Dim wdApp As Object
Dim wdDoc As Object
Dim MyRange As Object
Set wdApp = GetObject(, "Word.Application")
Set wdDoc = wdApp.Documents.Add(Template:="C:\Users\{my user id}\Documents\good letterhead 2014.dotx")
Set MyRange = wdDoc.Range 'set the range to the new document
MyRange.collapse 1 'collapse the range to the start of the document
' insert a new line before date (though frankly changing the style _
' to include the extra space would be preferable
MyRange.Text = vbCr
MyRange.collapse 0 'collapse the range to its end
' Selection Example:
MyRange.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _
InsertAsField:=False
' Move the end of the range to the end of the date
MyRange.End = MyRange.Paragraphs(1).Range.End
MyRange.collapse 0 'collapse the range to its end
' insert two new lines in the new range locaton (after the date)
MyRange.Text = vbCr & vbCr
MyRange.collapse 0 'collapse the range to the end of the document
MyRange.Select
Set wdApp = Nothing
Set wdDoc = Nothing
Set MyRange = Nothing
End Sub
If you are running the macro from Word then
Sub NewLetterhead_Template()
Dim wdDoc As Document
Dim MyRange As Range
Set wdDoc = Documents.Add(Template:="C:\Users\{my user id}\Documents\good letterhead 2014.dotx")
Set MyRange = wdDoc.Range 'set the range to the new document
MyRange.Collapse 1 'collapse the range to the start of the document
' insert a new line before date (though frankly changing the style _
' to include the extra space would be preferable
MyRange.Text = vbCr
MyRange.Collapse 0 'collapse the range to its end
' Selection Example:
MyRange.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _
InsertAsField:=False
' Move the end of the range to the end of the date
MyRange.End = MyRange.Paragraphs(1).Range.End
MyRange.Collapse 0 'collapse the range to its end
' insert two new lines in the new range locaton (after the date)
MyRange.Text = vbCr & vbCr
MyRange.Collapse 0 'collapse the range to the end of the document
MyRange.Select
Set wdDoc = Nothing
Set MyRange = Nothing
End Sub
It is worth bearing in mind that you don't need either macro. Simply insert a Createdate field in the document template and format to provide the required space using paragraph formatting (space before/space after) and then when you create a new document the date will be correct.