Can users in a group access a file that is in another user’s home directory?

I have 3 users A,B and C inside a group ‘admin’. I have another user ‘D‘ in whose home directory, there is a project folder. I have made D as the owner of that folder and assigned ‘admin’ as the group using chgrp. Group and owners have all the permissions, but still A,B or C are unable to access the folder. I have two question :

Choose interpreter after script start e.g. if/else inside hashbang

Is there any way to dynamically choose the interpreter that’s executing a script? I have a script that I’m running on two different systems, and the interpreter I want to use is located in different locations on the two systems. What I end up having to to is change the hashbang line every time I switch over. I would like to do something that is the logical equivalent of this (I realize that this exact construct is impossible):