Как узнать индекс слова в строке если они повторяются?
Вторым параметром метод index позволяет указать, с какой позиции надо начинать поиск. Указывайте последний результат + длину последнего слова:

TEXT_WORDS = []
index = 0
for word in TEXT.split():
  index = TEXT.index(word, index)
  TEXT_WORDS.append((word, index))
  index += len(word)
def get_indices(lst, el):
    return [i for i in range(len(lst)) if lst[i] == el]
    
    
print(get_indices([1, 5, 5, 2, 7], 7))
Возьмите на заметку етот код он возвращает индексы всех  вхождений в второго аргумента. Думаю вы сможете переделать эво  под свои нужды).