Substituir todo o texto em uma caixa de rich text

Eu tenho um problema ao tentar substituir todo o texto que corresponde a uma determinada palavra em umrich text box. Este é o código que eu uso

    public static void ReplaceAll(RichTextBox myRtb, string word, string replacer)
    {
        int index = 0;

        while (index < myRtb.Text.LastIndexOf(word))
        {
            int location = myRtb.Find(word, index, RichTextBoxFinds.None);
            myRtb.Select(location, word.Length);
            myRtb.SelectedText = replacer;
            index++;
        }
        MessageBox.Show(index.ToString());
    }

    private void btnReplaceAll_Click(object sender, EventArgs e)
    {
        Form1 text = (Form1)Application.OpenForms["Form1"];
        ReplaceAll(text.Current, txtFind2.Text, txtReplace.Text);
    }

Isso funciona bem, mas tenho notado um pequeno defeito quando tento substituir uma carta consigo mesma e outra letra.

Por exemplo, eu quero substituir todo oe emWelcome to Nigeria comea.

Isso é o que eu receboWeaalcomeaaaaaaa to Nigeaaaaaaaaaaaaaaria.

E a caixa de mensagem mostra23 quando há apenas trêse. Pls o que estou fazendo de errado e como posso corrigi-lo

questionAnswers(1)

yourAnswerToTheQuestion