I'm still looking ito the authorize.net issue, but the paypal issue is caused by the way you are updating the Total PRice calculation.
The response back from paypal is:
Transaction refused because of an invalid argument. See additional error messages for details.The totals of the cart item amounts do not match order amounts
looking at the info pasted to paypal it is posting the total price in my test as:
but posting the item price as:
paypal will examine the item price * Quantity to make sure the the itemized prices match the total price.
you need to create a trueprice calculation that is similar to the Total Price calculation, with the exception that it does not multiply by Quantity, then edit the code that passe the transaction to paypal to pass the true price instead of the Price.