Unabhängig vom Compilefehler: Die Signatur von Assign ist Unfug - den Source Parameter als TObject zu deklarieren ist unnötig, sowas macht nur Sinn, wenn man eine Abstrakte Basisklasse hat, wie bei TPersistent der Fall, wo erst die Ableitungen dann entscheiden, was sie annehmen - beim generischen Dictionary wohl kaum der Fall.
Auch hier macht der Source Parameter als TObject Sinn, wenn man nicht nur TDictionarys zuweisen möchte...
Aber du prüfst ja direkt, ob es TMyDictionary ist.
if Source is TMyDictionary<TKey, TValue> then
Wenn du irgend etwas anders übergibst, dann erscheint auf jeden Fall ein Fehler.
Dann lieber als Source-Parameter direkt den Type TMyDictionary verwenden. Dann fällt der Fehler direkt beim Compilieren auf.