Bei Streams mußt du etwas aufpassen, da der DataSnap-Stream gern Mal etwas anders arbeitet (Size = -1, ab einer gewissen Größe).
Meine alten Threads dazu sollten sich bestimmt finden lassen.
Aber wenn du sowieso eh "nur" ein DataSet übertragen willst, dann übertrage Dieses direkt, ohne es erst umzuwandeln.
function TdmDALZMI.GetBau(BauNr: Integer): TDataSet;