I have one custom object with private OWD and CRUD/View All on profile.
There are more than 10 different roles but not in same role hierarchy and I just need to provide edit to all the records for same profile.
NOTE: I can't give modify all access on PROFILE as it will give Delete access to all the users which I don't want.
You can't share by profile. Instead, you'll want to create a Public Group, assign all users you wish to share with to the Public Group, then creating a Sharing Rule to share all records with that group (Role: All Users Shared With Group: Edit Custom Object Records).