Причина, по которой ваш код не работает, заключается в том, что он ищет всю строку для замены (например, все три неправильных символа по порядку), а не какой-либо из них.
Чтобы заменить любую из трех,вам нужно что-то более похожее на это:
line = line.Replace("ï", " ").Replace("¿", " ").Replace("½", " ");
Но, в зависимости от ваших требований, вам может быть лучше очистить строку, просматривая каждый символ и просто проверяя, является ли он ASCII или буквенно-цифровым или чем-то еще, что вам нужноэто должно быть и восстановление чистой строки символ за символом.