O problema é que o escopo da sua tabela temporária existe apenas na instrução exec(). Você pode transformar sua tabela temporária em uma tabela temporária "global" usando 2 sinais de hash -> ##tempTable. No entanto, eu me pergunto por que você está usando uma variável @dynamicallyBuiltWhereClause para gerar sua instrução SQL.
Eu fiz o que você está fazendo no passado, mas tive mais sucesso gerando SQL a partir do aplicativo (usando C# para gerar meu SQL).
Além disso, você pode querer examinar as variáveis de tabela. Eu vi algumas instâncias estranhas usando tabelas temporárias em que um aplicativo reutiliza uma conexão e a tabela temporária da última consulta ainda está lá.