Hey there, I'm the author of Target For Me 2 and I got to the bottom of the issue and it looks like it's because we both followed the same example from wowace.com on how to implement profiles. ;)
The tutorial and descriptions page on the AceConfig library doesn't really make it clear, but on reflection it should be really obvious - every options page within the Blizzard options dialog needs to have a unique reference name.
That name can (and should) be different to the name displayed, so in this case, I have changed all of my pages registered with RegisterOptionsTable to have TFM2 as a prefix.
LibStub("AceConfig-3.0"):RegisterOptionsTable("TFM2 Profiles", TFM2.profileOptions);
Then in the later line that adds to the Blizzard options:
self.profilesFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions(L["Profiles"], L["Profiles"], "TargetForMe2");
self.profilesFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("TFM2 Profiles", L["Profiles"], "TargetForMe2");
I didn't need to store the name in the localization files, as it's never seen by the user. The AddToBlizOptions command takes the first parameter as the reference and the 2nd parameter as the text to display.
I've edited my code, to ensure each options page has a unique name now.
I've also left a comment about this clarification on the wowace manual page: