I still cant understand how shiv found out. Nikila thinks shiv doesnt know right, that means Shiv couldnt have known before marraige. I think he found out after marraige that his mother did all this. And I think he must have found out after the jungle incident because that is when he became really nice to her, so he must have been told the truth by Devika or Shashank. But Devika initially did not know Nikila planned all this, so if Shiv knew this was planned by his mother initially then it must have been shashank who told him. If all this is not the case. It is also possible that Shiv read the letter shashank wrote and burnt it, because he didnt want Gauri to find out that his mother is a two timing schemer because that would upset his father and family who trust her. So he thought in his own way he will get a divorce from her by being cruel to her, but he doesnt believe in this kundali nonsense because he is modern and all.
But after Devika confession at the party that she is gauri's nanni, Shiv I think genuinely tried to put the past behind him, and maybe have a happy life with Gauri. But accidents kept happening to Gauri from her getting shot to the fire, so Shiv starts to believe that this Kundali predictions can come true. So now he is forced to tell the truth. Because he knows now he cant have a life with Gauri if she is dead. ðŸ˜