Код не правильно считает слова из файла. Почему и в чем ошибка?
Вот здесь
if primary>max_value:
                max_key=primary
                max_slov=key
надо добавить max_value = primary т.е.
if primary > max_value:
        max_key = primary
        max_slov = key
        max_value = primary
у вас же изменилось "текущее" максимальное значение, а вы этого не учли... Это по первому вопросу.
По поводу Так же не могу реализовать условие "Если таких слов несколько, вывести лексикографически первое (можно использовать оператор < для строк)." Просьба дать разъяснение.
Я бы на Вашем месте просто отсортировал словарь по возрастанию (убыванию) значений и на последних(первых) двух(или более) ключах сравнил значения и из этого уже делал бы выводы - одно слово встречается максимальное кол-во раз или несколько слов.
P.S. с помощью операторов < и > можно сравнивать не только числовые значения, но и строки.
Мой вариант:
CODE
def main():
	list_from_line = []
	with open("input.txt") as f:
		for line in f:
			list_from_line += line.lower().strip().split()

	unique_keys = set(list_from_line)

	top = {
		key: list_from_line.count(key) for key in unique_keys
	}

	max_count = max(top.values())

	top_items = [item for item in top.items() if item[1] == max_count]

	result = min(top_items, key = lambda x: x[0])

	print(f"{result[0]} {result[1]}")

if __name__ == "__main__":
	main()


Не претендую на понятность)
Так как обычно пишу код стараясь использовать уже готовые функции. 
Думаю работает. 

Результат первого теста:
abc 3
Результат второго теста:
u 11

Если что-то непонятно, могу объяснить, но рекомендую всё таки разобраться самому)
Курсы лучше проходить самостоятельно, это не самое сложное задание, что я видел)
Что будет дальше? Когда пойдут задания по сложнее?