There is a pretty neat method to copy marketing lists in Microsoft CRM without retrieving every member and adding to the new list. All you have to do is creating a CopyMembersListRequest and set the two required properties SourceListId with the old list Id and the TargetListId with the new list id.  And of course, the new list must exist by the time the request is executed.

CopyMembersListRequest request = new CopyMembersListRequest
{
SourceListId = oldlist.Id,
TargetListId = newlist.Id
};

this.organizationservice.Execute(request);

Learn more about this on MSDN.