Thank you for the suggestions. This is what I have done ultimately:
1. MOVING TEXT TO CORRESPONDING LAYER
The first step was extremely tedious. In AutoCAD, I created about 100 layers, each with an elevation value present in the dwg (example 100, 101, 102.....200), each with a unique layer color. Then, I used a script I found online and modified the values in it to select all the text objects in the scene and filter out all the values in a certain range (ex. 100.17m, 100.88m, ....), then copied them to the corresponding layer.
2. MOVING TEXT TO CORRECT ELEVATION
Once I had all the text in their corresponding layers, I then went in an moved all the points in that layer to the corresponding z value (ie. all the points in layer 100 were given and elevation of 100m). As tedious as this sounds, I managed to do it in about 15-20mins for around 100 plus layers 🙂
3. CONVERTING TEXT TO POINTS
At this stage, the dwg file contained all the elevation markers as text filed at the correct elevation. I took this file into Max and replaced all the text objects with points with a soulburn script. This took some time since there were close to 24000 points in the scene. I did it a couple of layers at a time so my machine wouldn't crash. I am sure there must have been an easier way of doing this maybe even in Autocad directly, but I didn't have the time to research that. I saved out the file as a DWG again.
4. CREATING TERRAIN SURFACE
I took the DWG file into Rhino, an with a single click of a button, a surface was generated.
What I would have liked to do:
Use a script that reads all the text values in a scene and places it at the corresponding elevation. Unfortunately, the technique I used, rounded off all the text at intervals of 1m, which is not ideal but less tedious (ex. values of 100.89m ended up with an elevation of 100m only).
Then taken this file into MAX and converted all the text to points and with a max script and a click of a button gernerate a surface.
I cannot believe max doesn't have a command to do this since I feel it would be a very basic and useful tool to have! Maybe in a future release 🙂
Thank you to everyone who contributed to solving this issue.