Thanks Jeff and Mark for your answers.
Jeff - As far as I understand, you say that the algorithm for Topo to Raster should have the surface be matching the input at their respective points but this may be changed as it further iterates until it achieves a "hydro-logically correct model"? In this case, could I set the number of iterations to 1 in order to make the surface match the inputs as much as possible (where the tradeoff would be a less hydro-logically correct model)? I will have to play around with mass points and breaklines, they sound interesting.
Mark - Very interesting work, I enjoyed reading that. So essentially you created additional contours where you thought the initial interpolation was not behaving as expected to constrain the subsequent interpolations better? In producing these supplemental contours, did you simply use linear interpolation between primary 2.5 inch contours? Also, the final isohyets in Figure 19, are they extracted directly from the interpolated raster? Because they look really good.
An idea I had was to just pass the more important points as inputs multiple times into the interpolation to weight it more, I'll have to see if this is a legitimate idea later.
To put things in perspective, I've attached an image of my work too. The important things to note here are the surface was interpolated using the contours (brown lines) and green points. The purple points are the extracted surface elevations from the interpolated surface at the same latitude and longitudes as the green points. As can be seen, there are some large differences in some areas, up to 80 metres. What I'd like to achieve is the interpolated surface to pass through the green points (or pass by them extremely closely)