You can save the color of your entity in it's class (make sure it's saved to the NBT and is synced) and after that use the instance that's passed to the method for the texture in your model to check for the color and pass a different texture depending on that.
You can have an enum with all your colors and then save the ordinal of the color to the NBT.
I'm working on an entity, which texture should have several variations. You know, there is blue sheep, black sheep, white sheep. I want to do the same thing. How should I do that?
I'm working with Geckolib.