I thought it would be easy as pie, as easy as applying additional filters if you use an emulator on a modern GPU, which is light years beyond whatever the PS1 could produce. I mean....judging by @Nesh post where he shared some videos, I don't see problems with perspective correction or subpixel precision in the Crash Team Racing video --incredible game btw, I remember playing this game for hours at a friend's house, it was so addictive!
You don't notice it in CTR because the game is well designed to work around the limitation, not because the emulator is removing something. That said, it's still very noticeable in the snow level because of the big high frequency ground textures.
By the time triangle primitives hit PS1's GPU, the data necessary for perspective correct interpolation or sub-pixel/texel precision is already gone. This data can be extracted from the GTE's 3D calculations but the GTE doesn't talk directly to the GPU, making any attempt to do so complicated. The vertexes sent to the GTE will almost certainly be in a different order than how they appear as primitives to the GPU because of depth sorting. And the mapping won't be 1:1, as some vertexes output by the GTE will be discarded (due to frustum and backface culling) and some will appear multiple times (due to being shared by adjacent triangles). Perhaps the most serious issue is clipping, where new vertexes are created after the GTE stage by the CPU. The clipping would need to be redone to have the correctly interpolated colors/texture coordinates. And if any vertexes bypass the GTE altogether you're entirely out of luck.
It's possible it can still be done in a way where it works on a lot of games without serious problems, but it's not trivial and there could be a lot of overhead. gpuBladeSoft 1.44 was supposed to have enhancement involving depth (both perspective correct interpolation and Z-buffering) but I don't think it was ever released. It'd also surely need a modded version of the core emulator and not just work as a GPU plugin.