It appears that data class is not fully compatible with iOS SwiftUI/Combine ObservableObject. Using this template app:
https://github.com/joreilly/PeopleInSpace which lists people in space. On iOS its using SwiftUI and MVVM with viewmodel class (inherit from ObservableObject) that has a list/array of People object which is Kotlin data class in commonMain. The iOS basically calls the Repository class in commonMain to retrieve a list of People objects and display in list view. ObservableObject in SwiftUI/Combine is setup to update the SwiftUI list view whenever there is any changes in viewmodel class. Everything works fine if youre not changing the content of People object, like the sample template app. But when you try to change the attribute of the People object, the update is not reflected in the SwiftUI list view. So I changed the viewmodel class to have a list of PeopleIOS object, which is a struct I define in iOS. When retrieving the list of People object from commonMain, I convert them to a list of PeopleIOS, and use this structure in SwiftUI list view. And the changes is reflected in SwiftUI list view. I’m only few days picking up KMP so not so sure if I did anything wrong. Trying to look for a sample app that has KMP/SwiftUI/Combine that edit the commonMain data class model, if there is any would like to take a look. And I find the KaMPKit too much for KMP beginner. It might do more damage than getting people to adopt KMP.