Просто замените строку, просматривая ключи и значения словаря
modified_list = [predefined_list[0].replace(k,v) for k,v in predefined_dict.items()]
выход
['gross poy', 'grass pay', 'cross pay', 'gross pay']
Аналогично
predefined_list = ['pay gross', 'gross pay']
modified_dict = {list_k: [list_k.replace(k,v) for k,v in predefined_dict.items()]
for list_k in predefined_list}
Выход
{'gross pay': ['gross poy', 'grass pay', 'cross pay', 'gross pay'],
'pay gross': ['poy gross', 'pay grass', 'pay cross', 'pay gross']}