Not entirely true. It is possible to use damage to load different textures. Some adventure maps are doing that to create their custom items. (You will have to make your item unbreakable to keep it from mutating into different swords though)
But that's more a resource pack question than a forge question.
Don't create a new instance of your model in your entity class, models should be singletons. Models are also client-side only.
If your model class haven't changed since you've last posted it then the problem lies in the fact that you need to handle both cases on your AwakeAnimation method - if the entity is awake, and if they are not. Currently you are changing the rotation angles on the model if the entity is awake... which changes them for all entities as models are singletons.
Wouldn't be surprised if your trees leaves started growing over the chunk border triggering the next chunks generation. Comment out the decoration part of your custom biome and see if you can find it. Once we know that your biome is working we can help you to get your trees working.
Btw, if you want you could upload your project to github. Forge already comes with a gitignore file and a dependency management system, so all you have to do is follow a simple tutorial on how to upload to a repository. It would make it a lot easier if I could run your code on my own device. Plus you have a backup in case something happens to your machine.
Your biome might still be taking up too many resources. How much power does your device have and how much are you generating?
Can you give us a github link?
It will print the position whenever your biome get decorated.
However, that would require your biome to be generated first. I would instead somehow (e.g. on item right click) run WorldChunkManager.a(int i, int j, int k, List<Biome> list, Random random) and print the result. If this really is the findBiome function it should work even if your biome hasn't been generated yet. Just make sure that the range is big enough.
You could try to use this: https://takahikokawasaki.github.io/minecraft-resources/javadoc/forge/1.8-11.14.1.1320/net/minecraftforge/event/terraingen/package-summary.html
Or just use BiomeProvider findBiomePosition. silly me
That brings back memories...
I used BiomeManager.addBiome() in 1.8
I THINK that addSpawnBiome only means that it is possible that the world spawn is inside the specified Biome.