Working with Word documents in MATLAB is not that easy indeed, even a simple task as the one you described might be a nightmare.
I am not used to the WordUtils functions, but that is how I would approach this issue:
You can get the objects returned by the ActiveX Library, for example, to open the document you can use the line:
wordDocument = actx_word.Documents.Open(fullfile(word_file_p));
If you know the text of the heading and it is unique int the document, you can search for the text and replace it by a different text:
wordRange = wordDocument.Content;
wordRange.Text = 'NEW_TEXT';
I usually create a unique string in the template with a unique string, like %%UNIQUE_STRING%% and I search for this string to replace it using the method I explained.
You can also create the heading by script:
wordRange.Text = 'HEADING_TEXT';
wordRange.Style = -2;
I hope these two approaches can already give you some directions.