Я не видел здесь короткого, легко понятного ответа, поэтому я попробую.
С мелкой копией любой объект, на который указывает источник, также указывает на (так, чтобы никакие ссылочные объекты не копировались).
С глубокой копией копируется любой объект, на который указывает источник, и копия указывается адресатом (так что теперь будет 2 каждого ссылочного объекта). Это повторяет дерево объектов.
Похоже, ваша Form1 повторно инициализирует listCars. Попробуйте отладить метод addCar и посмотрите, пуст он или нет.