Let's see if this works instead (cutting out the genaddrecordform in favor of a=nwr):
var text RID = "%%rid%%";
var text AddContract = URLRoot() & "db/" & "brgdpr9fn?a=nwr"
& "&_fid_12=" & URLEncode ([Related Vendor])
& "&_fid_57=";
var text EditUserFocus =
URLRoot() & "db/" & "bp8yr9i5s?a=API_EditRecord" &
"&key=" & UserToEmail(User()) &
"&apptoken=xxxxxxxxxxxxxxxxxxxxxxxxx" &
"&_fid_220=" & [Service Order - SO #] &
"&_fid_224=" & [Related Service Order];
"<a class='SaveBeforeNavigating' data-replaceRid=true style=\"text-decoration:none; background: #4b7097; border-radius: 5px; color: #ffffff; display: inline-block; padding: 0px 0px 0px 0px; width:100px; text-align: center; text-shadow: none; border: 2px solid #030404; font-size: 12px \"href='"
& $EditUserFocus
& "&rdr=" & URLEncode($AddContract) & $RID
& "'>Add Subcontract</a>"
------------------------------
Brad Lemke
------------------------------