I don't code for Word, but this post will bump your thread back to the top.
If I did, I would start by defining Constants for the various tags
Const ItalicsStart as String = "<i>"
Const ItalicsEnd as String = "</i>"
Const StartB as String = "<b>"
Const BEnd As String = "</b>"
Const StartB_I As String = StartB & ItalicsStart
Is this line is supposed to replace some string or another with the "^&"? That just doesn't look right to me, but it is what you have.
.Text = "<b><i>^&<i></b>"
I think it should be used as
.Text = "<b><i>" ^& "<i></b>"
'OR
.Text = StartB_I ^& EndB_I
Being as I don't know Word, Just what I see you using, try this
.Text = "<b><i>" & .Replacement & "<i></b>"