Problemet är att omfattningen av din temp-tabell bara finns inom exec()-satsen. Du kan omvandla din temptabell till en "global" temptabell genom att använda 2 hash-tecken -> ##tempTable. Men jag undrar varför du använder en variabel @dynamicallyBuiltWhereClause för att generera din SQL-sats.
Jag har gjort det du gör tidigare, men har haft bättre framgång med att generera SQL från applikationen (med C# för att generera min SQL).
Du kanske också vill titta på tabellvariabler. Jag har sett några konstiga tillfällen med temporära tabeller där ett program återanvänder en anslutning och temptabellen från den senaste frågan finns kvar.