It sounds like you’re having some sort of issue with service caching.
One thing that comes to my mind is that you could try calling sd_ble_gatts_service_changed.
In SDK12 firmware we had to add #define IS_SRVC_CHANGED_CHARACT_PRESENT 1 /**< Include the service changed characteristic. If not enabled, the server's database cannot be changed for the lifetime of the device. */
which set a flag to soft device enable parameters to include the service changed parameter.
If you haven’t done so already, click the refresh services on nRF Connect.
We do have some connectable firmwares, mainly for vibration monitoring applications. What are your expectations on those firmwares, i.e. what they should do?