You're not able to save the meta data for the gateway because the acceptable_payment_type is in an invalid format (i.e. an array). The system does not automatically serialize array data for storage with gateway meta like it does for modules, so you will need to serialize and unserialize it yourself.
$rules = array(
'acceptable_payment_type' => array(
'valid' => array(
'rule' => true,
'message' => "Payment type invalid",
'post_format' => array("serialize")
)
)
);