Hello,
1. Well, it's possible to pass anything to PayPal. You just need to find out in what format of data PayPal accepts. To adjust the way of passing data you need to create class which inherits from 
CMSPayPalProvider as follows (please note it's only an example, adjust it according your needs):
public class MyPayPalProvider : CMSPayPalProvider
	...
	public override string InitializePaymentRequest(Hashtable requestParams)
	{
	 base.InitializePaymentRequest(requestParams);
	// custom initialization
	requestParams["myparameter1"] = "";
	requestParams["myparameter2"] = "";
	}
Please note myparameter1 and myparameter2 should be in correct format accepting by PayPal.
See also the example of 
Developing custom payment gateways.
2. You can create a custom step in the shopping process and load the Paypal page in the 
iFrame.
3. Integrate the paypal process with the Kentico using 
PayPal API - 	
PayPal API Overview