Сначала замечания по реализации:
1. Раз уж мы делаем свой аналог List - тогда есть смысл вынести его в библиотеку, а не с Exe.
TargetFramework стоит делать чуть более новым. Сейчас LTS - .NET 6 (но это не так уж и критично)
2. Почему List Только для char реализован? Почему не сделать его обобщённым?
3. Почему List не реализовывает стандартные интерфейсы? Тот же IEnumerable<T> хотябы.
4. PrintForward - явно какой-то лишний метод. Список не должен отвечать за вывод в консоль.
5. Публичный сеттер в Node выглядит как что-то опасное. Так можно изменить Next или Previous - лист изменится, вплоть до изменения количества элементов, но значение Count в самом листе не изменится, от чего всё поломается.
А вот тесты наоборот выглядят вполне неплохо, но надо бы покрытие посмотреть.