As said in Single/double quotes ksh:
The "$PWD" resolves immediately. (...) When you set to '$PWD', it does not resolve immediately, so it resolves when used, and changes when you change directories.
So change
export PS1="[$(tput bold)][$(tput setaf 1)]\$ [$(tput sgr0)] $PWD :: $(. blah) ::"
for
export PS1='[$(tput bold)][$(tput setaf 1)]\$ [$(tput sgr0)] $PWD :: $(. blah) ::'
That is, PS1='<code>'
instead of PS1="<code>"
.