The alternate method worked for me and I got 100% coverage. I defined different cover points in different cover groups and sampled them separately one by one. For each covergroup I got 100% coverage. This method is time consuming and makes a code lengthy but it works. Thanks Dave .
Some Important aspects which I found interesting to further explore is -:
1) Creating array of different cover points in a single cover group ,then sampling them at clock edge and creating new instance for the array. This would be time efficient and optimize the code for complex designs which needs to be verified
2) Sometimes the urgreport didn't get updated. The best solution is to delete the previous urgreport every time we execute the coverage command.