So the environmental issues were caused by the StarCluster image loading SGE environment variables on login shells instead of through both login and non-login shells.
I added this to my user's ~/.bashrc
script and all is working now:
if [[ $- != *i* ]]; then
. /etc/profile.d/sge.sh
fi