Issue in customer edit form new tab custom grid collection in adobe commerce

I have created a customer custom grid with custom collection on customer edit form in magento 2 admin using ui_component method.
Used the following steps in order to create this.

Page 1

enter image description here

Page 2
enter image description here

Issue 1 – I am unable to capture the customer id from current edit form. I have hard coded some customer id and able to product this result.

Issue 2 – I am getting duplicated data only on page 1 as show in the page 1 image. Next page is working fine and if i navigate back to first page again the duplicate data is retrieved.

Below is my coding approach in my custom extension.

File – BS/KoRPricing/view/adminhtml/ui_component/customer_form.xml

<fieldset name="bs_kor_pricing">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="label" xsi:type="string" translate="true">Price List [KoR]</item>
            <item name="collapsible" xsi:type="boolean">true</item>
            <item name="sortOrder" xsi:type="number">100</item>
        </item>
    </argument>
<container name="bs_kor_pricing_container">
        <insertListing name="bs_kor_pricing_listing">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="autoRender" xsi:type="boolean">true</item>
                    <item name="ns" xsi:type="string">bs_kor_pricing_listing</item>
                    <item name="externalProvider" xsi:type="string">bs_kor_pricing_listing.bs_kor_pricing_listing_data_source</item>
                    <item name="imports" xsi:type="array">
                        <item name="customer_id" xsi:type="string">${ $.provider }:data.id</item>
                    </item>
                    <item name="exports" xsi:type="array">
                        <item name="customer_id" xsi:type="string">${ $.externalProvider }:params.id</item>
                    </item>
                    <item name="externalFilterMode" xsi:type="boolean">true</item>
                    <item name="loading" xsi:type="boolean">false</item>
                    <item name="uniqueIdentifier" xsi:type="string">bs_kor_pricing_customer_grid</item>
                </item>
            </argument>
            <settings>
                <externalFilterMode>true</externalFilterMode>
                <loading>false</loading>
            </settings>
        </insertListing>
    </container>
</fieldset>

File – BS/KoRPricing/view/adminhtml/ui_component/bs_kor_pricing_listing.xml

e<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
    <item name="js_config" xsi:type="array">
        <item name="provider" xsi:type="string">bs_kor_pricing_listing.bs_kor_pricing_listing_data_source</item>
        <item name="deps" xsi:type="string">bs_kor_pricing_listing.bs_kor_pricing_listing_data_source</item>
    </item>
    <item name="spinner" xsi:type="string">bs_kor_pricing_columns</item>
    <!-- Add a unique namespace -->
    <item name="namespace" xsi:type="string">bs_kor_pricing_listing</item>
</argument>
<dataSource name="bs_kor_pricing_listing_data_source">
    <argument name="dataProvider" xsi:type="configurableObject">
        <argument name="class" xsi:type="string">BSKoRPricingUiDataProviderCustomerPriceList</argument>
        <argument name="name" xsi:type="string">bs_kor_pricing_listing_data_source</argument>
        <argument name="primaryFieldName" xsi:type="string">id</argument>
        <argument name="requestFieldName" xsi:type="string">id</argument>
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="update_url" xsi:type="url" path="mui/index/render"/>
                <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
                <item name="filter_url_params" xsi:type="array">
                    <item name="customer_id" xsi:type="string">*</item>
                </item>
            </item>
        </argument>
    </argument>
</dataSource>
<listingToolbar name="listing_top">
    <columnsControls name="columns_controls"/>
    <filters name="listing_filters">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <!-- Add a unique namespace for filters -->
                <item name="storageConfig" xsi:type="array">
                    <item name="namespace" xsi:type="string">bs_kor_pricing_listing_filters</item>
                </item>
            </item>
        </argument>
    </filters>
    <paging name="listing_paging"/>
</listingToolbar>
<columns name="bs_kor_pricing_columns">
    <column name="id">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="filter" xsi:type="string">textRange</item>
                <item name="sorting" xsi:type="string">asc</item>
                <item name="label" xsi:type="string" translate="true">IDs</item>
            </item>
        </argument>
    </column>
..... continue .....

File – BS/KoRPricing/Ui/DataProvider/Customer/PriceList.php – getData method

public function getData()
{

    $customerId = $this->_registryManager->registry(RegistryConstants::CURRENT_CUSTOMER_ID);
    if (!$this->getCollection()->isLoaded()) {
        // Try to get customer ID from various sources
        $customerId = 2197;
        //$test = $this->getRequest()->getParam('customer_id');
        $customerId = $this->request->getParam('customer_id');

        if (!$customerId) {
            $customerId = $this->request->getParam('id');
        }

        if ($customerId) {
            $this->getCollection()->addFieldToFilter('customer_id', $customerId);
        }

        $this->getCollection()->load();
    }

    $items = $this->getCollection()->toArray();

    return [
        'totalRecords' => $this->getCollection()->getSize(),
        'items' => array_values($items['items']),
    ];
}

Can anyone please help me to fix these issues, dose anyone face similor experience in your previous task. Your help will be kindly appreciate on this.