Several of my users are reporting on at lest recent and current versions of iOS the value from one characteristic can be swapped with another.
Originally I thought this was a library issue but it doesn't happen on Android and now a user with two iPhones using the exact same app and iOS 26.3 on both has the issue on one phone but not the other.
I've gone into more detail here which also includes a little data dumping to prove the values between characteristics can be mixed up.
https://github.com/dotintent/react-native-ble-plx/issues/1316
One user reported cycling Bluetooth on/off fixed the issue but the latest user says it does not.
For the peripheral the services can only change if the device enters firmware update mode (in which case the service UUID is different). Otherwise the characteristics on a service never change. This would make it a strange one to be caching related since the cache should always be correct.