Сам спросил, сам ответил.
Всё дело в DataContext. У созданных по шаблону контролов он смотрел в другое место. Пришлось указать вручную (запустив поиск по типу) и всё заработало.
dd:DragDrop.DropHandler="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"