I know that this is probably too late for you, but I also looked for the answer to this question and thought that I would share my decision.
Old control
In my new form, I had a control that I wanted to replace with ClientPeoplePicker.
<SharePoint:FormField runat="server" id="ff2{$Pos}" ControlMode="New" FieldName="Person" __designer:bind="{ddwrt:DataBind('i',concat('ff2',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Person')}"/>
New control
The new ClientPeoplePicker only needs the same id attribute as the control that I wanted to replace.
<SharePoint:ClientPeoplePicker runat="server" id="ff2{$Pos}" />
Edit
I found a forum that lists some of the control attributes, and thought I posted them for those who should stumble upon this question.
http://social.msdn.microsoft.com/Forums/en-US/1bd323bf-a009-446b-aac5-e2b9ebde1a07/sharepoint-client-people-picker-allowing-multiple-entries
<SharePoint:ClientPeoplePicker Required="true" ValidationEnabled="true" ID="pplPickerSiteRequestor" UseLocalSuggestionCache="true" PrincipalAccountType="User" runat="server" VisibleSuggestions="3" Rows="1" AllowMultipleEntities="false" CssClass="ms-long ms-spellcheck-true user-block" ErrorMessage="*" /> <asp:CustomValidator ID="cvpplSiteRequestor" runat="server" ControlToValidate="pplPickerSiteRequestor" ForeColor="Red" ClientValidationFunction="CheckSiteRequestor" ErrorMessage="User is a required field" ValidationGroup="SiteAccessForm" Text="*"> </asp:CustomValidator> function CheckSiteRequestor(sender, args) { args.IsValid = false; var userCount = $("span.ms-entity-resolved").length;
source share