If you can select all the text and move the text as a group, all at once, to where they need to go, then this can be done easily without using 3rd party software. If you can't move them all at once, then would it be possible to move them in a few groups, say around four groups, moving only one group-at-a-time? The goal is to move all text to their 'target' location, because once they're in the right spot, then you're home free.
Assuming you have already moved all the text, you can use DATAEXTRACTION command. This command is capable of collecting the Easting, Northing, and the elevation value and put them neatly into xls format. Once in xls, you can easily edit them to PENZD (or some other acceptable form) then save as a csv file. Since the Dataextraction command collected the x-and y-coordinates as well as collected the text's CONTENT, which in this case was the elevation, you can create a formatted list of points and save the list as a csv file, e.g. PENZD with csv extension, which as you already know, can be used to insert cogo points.
The DataExtraction process is highlighted in images 1, 2 and 3 (Pages 4, 5 and 6 of the Dataextraction command). Image 4 shows the resulting xls file you get from Dataextraction. Image 5 shows an edited version of the xls.
Image 1.
Image 2.
Image 3.
Image 4.
Image 5..
If you want to insert the actual MTEXT instead, then that can be done too, by combining QUERY and ALTER PROPERTIES functions. The former will find, gather and insert your text while the latter function will move, or elevate your mtext to its proper elevation or z-value.
Chicagolooper