Dein Problem ist die Borland.Delphi.dll aka die
RTL von Delphi.Net.
Der Inhalt wird (
IMHO per default) direkt in eine Assembly kompiliert.
Wenn du nun die zweite D.Net Assembly lädst kommen sich beide RTLs in die Quere.
Du _musst_ die
RTL referenzieren das heißt: du musst sie auch immer mit deinen Assemblies mitgeben.
Und zur 2. Frage[1]
Es ist generell keine gute Idee nur wenige Klassen in einer Assembly und wieder ein paar in einer anderen zu haben, wenn diese Klassen auf die gleiche Aufgabe zielen bzw. sehr wahrscheinlich gemeinsam verwendet werden.
Auch zu feine Aufgliederungen in zu viele Namespaces hat sich als sehr nervig gezeigt.
[1] welche hier durchaus nicht gegen "neue Frage, neuer Thread verstößt"