Поверхностное: копируются поля; если поле - указатель или слайс, копируется только указатель/заголовок, данные общие. Глубокое: рекурсивно копировать всё, включая данные по указателям и элементы слайсов. В Go копирование структуры по умолчанию поверхностное. Глубокое - вручную или через библиотеки/рефлексию.