Modifying a Word document template with OpenXML
Using case-sensitive string matching like that is in my opinion the first nail in the coffin. Instead a case-insensitive dictionary would be a much better option.

Example:

var replacements = new Dictionary&lt;string, Func&lt;string&gt;&gt;(StringComparer.OrdinalIgnoreCase)
{
    ["Plan"] = () =&gt; $"{DateTime.Now.Year} Q2 Plan",
    ["Project Name"] = () =&gt; $"SUPER SECRET CODE NAME",
};

text.Text = replacements[text.Text]();


This is also much easier to extend/maintain.



You shouldn't mix full type names with var. You can use var not only for normal variables but also inside using statements or foreach loops. Keep it consistent.