The API username and password must be updated all around on all checkout pages. The best way to do this is to do a global find and replace for the entire site. Look for the old API username and update it with the new one then repeat it for the API signature, just find the old one and replace it with the new one.
These should be located on the checkout, confirm, pp_confirm pages and may also be present on other pages. Doing the site wide find and replace should get it working for you. If you have further problems with it you should add in the checkout responses for the page you are working on and view the full request and full response, PayPal should let you know what the problem is in the response.
As for the shipping first and last name if you would like to concatenate the two you would replace lines 350 and 351 with these:
$PP_DirectPayment_optional[$nextIndex] = "SH_Name";
$PP_DirectPayment_optional[$nextIndex] = "".((isset($_POST["shipping_firstname"]) && isset($_POST["shipping_lastname"]))?$_POST["shipping_firstname"] . " " . isset($_POST["shipping_lastname"]:"") ."";
This is the same code but it is also checking the last name. If both are present then they will be combined into the one value.