There are multiple reasons, not just taking the ball late. It does not help to have a very big forehand swing when you want to topspin against topspin, especially at our level . Once you get better and your anticipation and footwork can support it you can try doing that.
Infact, even with chinese rubbers , its a misconception that you have to have a huge forehand swing all the time. As long as youare using your core and timing the ball , you will still be able to impart power even with a chinese rubber. So my advise would be to emulate somebody like say Feng Tianwei when you try to spin a topspin ball back... don't focus on the swing from the shoulder but focuse on the hip rotation and the timing infront of the body, again I mean 2 o clock with your waist rotated , not literally in front of the body
What I have seen help me do this better is if you practice spining the ball with the forearm during the warm up. After you warm up with a flat stroke on your forehand, try to just spinning the ball using only your forearm back and forth while your partner also does the same. Its like practicing topsin counters where the focus is only on spin , with the slight mandatory waist rotation and the forearm snap , without using any shoulder power ... see if it helps ...