I'm giving you slightly contrarian advice axed on typical indian household recipe.
A) if I understand right your main problem is that the paneer crumbles in your curry.
B) unlike Indian restaurants in western countries, paneer which is tough and squeaks between teeth is not considered right! Paneer should be soft but firm and hold together. Follow my sister's recipe below. I use it and has never failed.
C) apart from ingredients, having right tools is important. In this case you'll need a muslin cloth to hang your paneer.
Ingredients: use full fat / whole milk, slightly old yogurt beaten smooth (not Greek yogurt- plain danone yogurt) and very little citric acid.
Method: bring milk to a boil and set burner on simmer. Add a pinch of salt to the milk. Start stirring the milk. While stirring, pour your beaten yogurt into the milk. The ratio of milk to yogurt is 4:1 I.e. 250ml yogurt to a litre of milk. Add two tea spoons of citric acid. Your milk will start separating. Now in a pot, put the muslin cloth in the base such that the sides hang out. Pour the separated mixture in the pot. Pick up the cloth from the sides and bring the edges together and hang it like a knapsack for 10-15mins to drain all excess water. DO NOT PRESS THE PANEER WITH WEIGHT OR PRESSURE. As contrarian as it sounds, little moisture is required to retain softness and taste. Once drained, untie muslin cloth and cut your paneer into cubes.
Another thing- paneer should be added almost towards the end of the curry cooking and turned over just once. In our zest to coat all cubes evenly we often turn it too many times. Just let it rest, the gravy will take care of even coating. Another trick to ensure even coating is to cover the curry pan after putting in the paneer and simmer for 5 mins. The spicy steam which builds inside coats the paneer cubes.
Remember, paneer is not a melting cheese. It is more akin to tofu than it is to fresh mozzarella or cheddar. Don't treat it like a European "Cheese".
Best of luck and let me know the results !