Why is this part of your code?
AND ISNULL(TableZ.MyCol,'') + '/' + ISNULL(Table2.MyCol,'') + '/' + ISNULL(Table3.MyCol,'')
+ '/' + ISNULL(Table4.MyCol,'')+ '/' + ISNULL(Table5.MyCol,'') IS NOT NULL
Using the ISNULL followed by a check that it IS NOT NULL will always evaluate to true. It just extra processing for nothing (unless there's something I'm missing?).