try to make different customer groups instead giving each customer an attribute. Magento keeps different caches for different customer groups. So you can easily hide prices (or whatever) for one group and show to other, making check right in the price block. Please take a look at this example.
I was too facing the issue that despite doing everything as per core still my save button wasn't working.
While googling I found this link : https://www.pierrefay.com/magento2-training/form-component-backend-crud-admin.html
And when I did exactly like this page told me. The save button worked.
Have you tryed creating a new function as below and use that?
* Retrieve Custom path
* @return string
public function getCustomPath()
in your listing.xml file above the line
<item name="update_url" xsi:type="url" path="mui/index/render"/>
add the id you are passing in the url like in my case
<item name="filter_url_params" xsi:type="array">
<item name="page_id" xsi:type="boolean">...
The validate-number-range rule must have the type string and should have the range as its value, e. g. <rule name="validate-number-range" xsi:type="string">1-50</rule>.
<rule name="required-entry" xsi:type="boolean">true</rule>