Check this: Translating mouse location to Object coordinates
When found triangle that ray intersects, you can gather that triangles vertices 3d coordinates and UVs. There you have enough data to calculate UV position for intersection point.
Pseudo-code:
x0 = mouse.x; y0 = mouse.y;
vec3 samplePoint = unproject(x0, y0); // returns (x, y, near-plane-z) coords
ray.origin = camera.position;
ray.direction = samplePoint - camera.position;
var triangleComplexObj = check_for_intersections( scene, ray ); // returns triangle, it's vertices and their UV and 3d coord and intersection coord
calulateUV( triangleComplexObj , triangleComplexObj.intersectionPoint );
It's maybe a bit complex to understand but should do the trick. Hope this helps.