Twoje zapytanie zwraca tylko rekordy, jeśli zarówno A, jak i pokrewne B zawierają wyszukiwany tekst.
Nie mówisz jednak, co nie działa.
Dlaczego nie LEFT OUTER JOIN w wyszukiwaniu pełnotekstowym i zamienić:
SELECT *, (ISNULL(ftTableA.[RANK], 0) + ISNULL(ftTableB.[RANK], 0)) AS total_rank
i
WHERE ftTableA.Key IS NOT NULL OR ftTableB.Key IS NOT NULL