You need to move the comma around to separate the two recipients. Right now the second recipient has only a RoutingOrder. (Recipients are comma-delimited while recipient fields are semi-colon delimited.)
E.g.:
//Custom Recipient List
var CRL='Email~{!Opportunity.AP_Contact_Email__c};FirstName~{!Opportunity.AP_Contact_First_Name__c};LastName~{!Opportunity.AP_Contact_Last_Name__c};Role~A;RoutingOrder~1,Email~' + primaryContact.Email + ';FirstName~' + primaryContact.FirstName + ';LastName~' + primaryContact.LastName + ';Role~B;RoutingOrder~2';
//Custom Contact Role Map
var CCRM='A~Signer 1;B~Carbon Copy';
//Custom Contact Type Map
var CCTM='A~Signer;B~Carbon Copy';
Cheers, Jeff