I have the same issue. Once you purchase a subscription, it works fine, but when the user plans to downgrade a subscription, the currentEntitlements will only list the active one, which might not be expired yet. Due to this the user does not see the updated subscription period.
I guess your users have the same issue. Once the current subscription period expired, the changed subscription will appear automatically.
I have found some suggestions, but cannot code it. autoRenewalPreference should show the updated productid for the next coming subscription product, so the downgraded one, but cannot figure out how to get this value from code.