Why doesn't the compiler like this?

Compiler error:
There is more than one item with this name and it’s not clear to which it refers

What does this mean!

txtMsg.Text.Replace( "MM/DD", md3Mo.Month.ToText + "/" + md3Mo.Day.ToText))

Yet why does it then except:

txtMsg.Text = Replace(txtMsg.Text, "MM/DD", _ md3Mo.Month.ToText + "/" + md3Mo.Day.ToText)

Inquiring mind like to know…

In the top code, you didn’t assign the result to anything, but in the bottom code you did. Was that a typo or is it the answer?

You probably want to do that:

txtMsg.Text = txtMsg.Text.Replace("MM/DD",  md3Mo.Month.ToText + "/" + md3Mo.Day.ToText)

Duh! Simple enough!