O arquivo .bash_profile (e também o arquivo .profile) é carregado para shells de logon, os shells sem logon usam .bashrc (sem símbolo _). Há uma linha no arquivo .screenrc que informa à tela qual shell deve aparecer ao iniciar uma janela de tela (quando não é iniciado um programa específico como o aplicativo da janela). No meu arquivo .screenrc, é assim (incluindo comentários):
# shell: Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
shell -$SHELL
Verifique o seu arquivo .screenrc e verifique se a linha do shell tem o traço na frente. Ao ter esse símbolo de traço e forçar um shell de login, você obterá o seu .bash_profile de origem. A variável $ SHELL no meu .screenrc está usando o valor do shell conforme fornecido pelo shell que inicia a tela (geralmente para mim é bash).
Caso você esteja se perguntando, a maior diferença que eu pude descobrir entre shells de login e não-login é que um shell sem login é normalmente o que é chamado para a execução de scripts.