1. Add a new field for selection image to `catalog_product_bundle_selection` table.
Assuming you use Magento version >= 2.3, create `<your module dir>/etc/db_schema.xml`
```
<?xml version="1.0"?>
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
    <table name="catalog_product_bundle_selection">
        <column xsi:type="varchar" name="selection_image" nullable="true" length="255" comment="Selection Image"/>
    </table>
</schema>
```
 2. In your custom `BundleCustomOptions` Modifier, add `uploaderConfig` to your selection image field to point to the uploader controller.
```
'uploaderConfig' => [
    'url' => $this->urlBuilder->getUrl(
        'bundleselectionimage/product_image/upload'
    ),
],
```
 3. Add an upload controller to handle selection image upload.
 4. Override `Magento\Bundle\Model\LinkManagement` to save the selection image value to database.  
At the end of the `mapProductLinkToBundleSelectionModel` method, before `return $selectionModel;`, adding the below code:
```
if ($productLink->getSelectionImage() !== null) {
    $selectionModel->setSelectionImage($productLink->getSelectionImage());
}
```
 5. Run the commands to upgrade database, re-compile code, re-deploy static content.