I know this is probably too late for you but I was looking for the answer to this as well and thought I'd share my solution.
Old Control
In my new form I had a control that I wanted to replace with the 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 listed some of the control's attributes and thought I'd post them for whomever 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; //Returns the userNames Count
if (userCount === 1) {
args.IsValid = true;
}
}