but is there a way to keep the detail from a texture while still making the part paintable?

Unfortunately not much. It's one of the reasons why I don't like paint that much.

Paint Tutorial:

Step 1
Begin by making your base diffuse texture like the following:

Step 2
Determine what parts you want to be paintable, go to your channels, and add a new alpha channel. Make these parts of the channel white (or light grey-- the whiteness dictates how powerful the paint is applied):

Step 4
Import your model in-game using the new beta importer. In the skins section, change the dropdown option to "Specific Team" and make sure to check the "Paint VMT1" box. Open the texture you created (should be 512x512) and make sure the "Blend Tint by Base Alpha option is selected". Leave the "Blend Tint Color over Base" at 0. In the Color Tint Base section, enter RGB values that make the red team color. Switch to the blue team panel after and do the same thing as above (making sure to use blue RGB values). The best way to get RGB values is by looking at your original diffuse texture and getting the values from photoshop (eyedropper tool):

Step 5
Generate a backpack icon using whatever method you like (I use the source SDK), and finalize the model. Then submit it!