The WooCommerce Cart add_to_cart function takes a parameter for cart_item_data. To make this work, you simply need to pass the addon data to add_to_cart. Something like this:
$addons = array(
array(
"name" => "Size",
"value" => "2.5x7",
"price" => 0,
"field_name" => "5186-0",
"field_type" => "multiple_choice",
"id" => "1683555538",
"price_type" => "flat_fee"
),
array(
"name" => "Medium",
"value" => "Print",
"price" => 0,
"field_name" => "5186-1", // {product_id}-{addon_index}
"field_type" => "multiple_choice",
"id" => "1683555539",
"price_type" => "flat_fee"
)
);
$product_id = 11;
$quantity = 1;
$variation_id = null;
$variation = null;
$cart_item_data = array('addons' => $addons);
WC()->cart->add_to_cart($product_id, $quantity, $variation_id, $variation, $cart_item_data);