My first stab at this would be to go look at the coldet library on SourceForge.
It’s quite old, but reasonably well documented in the code, and simple enough to be flexible and customizable to your needs.
It has (if I remember correctly) the ability to put bunches of triangles into a big database which you can then do ray collision detection with on a triangle or vertex level.
It also has the ability to apply the current model transformation matrix, or not, when you do those collision detections.
You can shoot a ray from the mouse position on screen into the mesh by using gluUnProject twice as documented on the OpenGL site here…
You’d most likely have to modify coldet slightly to give each triangle or vertex a handle to refer back to your drawing data, or you could perhaps draw the data, and manipulate it within coldet directly. Up to you.