I sort of understand that situation. We also have around 10 years worth of Inventor documents, so there are a variety of page sizes, borders, & title blocks, but luckily we have far fewer variations to deal with, and only stuff we designed ourselves. And similarly, the stuff we make drawings for it pretty dynamic too, so most drawing automation efforts are somewhat limited in scope/use, or even futile.
Like many design automation solutions, there is often a significant upfront cost of time & frustration in preparing things to suit your needs effectively and efficiently, but the end result is usually worth the effort. However, in situations where the end result of an automation solution would need to be extremely dynamic, you have to make the difficult decision whether it will be worth the investment or not. And that is often very hard to judge early on, when you are just learning the basics of things like iLogic, Inventor's API, VBA, VB.NET. But every little bit helps in the long run, and the more you know about automation the easier it becomes to judge whether or not it A) can be done B) about how difficult it may be to achieve.
Here is another similar routine that may give you some ideas, that looks like it might be useful to you.
Dim oDDoc As DrawingDocument = ThisDrawing.Document
Dim oSheet As Inventor.Sheet = oDDoc.ActiveSheet
Dim oTB As TitleBlock = oSheet.TitleBlock
Dim oTBDef As TitleBlockDefinition = oTB.Definition
Dim oSketch As DrawingSketch
oTBDef.Edit(oSketch)
'prepare a variable to hold all the TextBox objects that are for Prompted Entries
Dim oPromptTBoxes As List(Of Inventor.TextBox)
'set its value(s) with a compact, yet specific filter
oPromptTBoxes = oSketch.TextBoxes.OfType(Of Inventor.TextBox).Where(Function(tb) tb.FormattedText.Contains("</Prompt>")).ToList
For Each oTBox In oPromptTBoxes
oFText = oTBox.FormattedText
'get part of text, after the opening Prompt XML tag
oAfterPromptTag = oFText.Split("<Prompt>", 2)(1)
'now get the remaining text before the closing Prompt XML tag
'(should be the text you see that explains what you should enter here)
oPrompt = oAfterPromptTag.Split("</Prompt>", 2)(0)
'get the current value of this Promted Entry
oCurrentValue = oTB.GetResultText(oTBox)
'prompt user to enter a new value, while offering current value as default
oNewValue = InputBox(oPrompt, oPrompt, oCurrentValue)
'set new value to the TitleBlock's Prompted Entry for that TextBox
oTB.SetPromptResultText(oTBox, oNewValue)
Next
oTBDef.ExitEdit(True) 'True = save changes
oDDoc.Update
Wesley Crihfield

(Not an Autodesk Employee)