Why texture heavily 'stretched' even though UV is well positioned?
The vertices, extra smoothness and all data generated by Subsurf can't really be modified further from their source mesh they are interpolated from. It's how the modifier is intended to work. But there is a checkbox for Subdivide UVs that you can disable. This should make the model linearly interpolate the UVs instead of smoothing them according to Catmull-Clark.





The image isn't really the best when it comes to illustrating the difference in UVs, the differences are only there where the unwrap isn't perfect and I'm bad at making distorted UV unwraps. But regardless, disabling subdivide UVs should fix whatever difference in UVs is caused by Subsurf modifier.

However in the future, thinking about your workflow it's important to model first, then texture especially with hand-painted ones because they are entirely dependent on geometry. If you look at your texture you can actually see the level of detail you had during painting. You should adapt your workflow to this fact and paint the textures only after you've reached high enough definition with your model.