Я спрашиваю, потому что классы, как правило, передаются по ссылке, но я не уверен в случае словаря
Зависит. Типы ссылок (class) передаются по ссылке. Типы значений (struct) передаются по значению.
class
struct
Attachment - это COM-интерфейс, поэтому он очень похож на тип ссылки.Даже если вы обращаетесь к нему через свойство Value.