You will have a very deep backStack with your current setup. Imagine what the navigation graph would look like if you have 10, 15 sections. I suggest you use nested graphs or have a parent NavHost that hosts all sections, and pass the navigation logic to the first and last screens of every section.
Regarding retaining UI state, if you want to preserve UI state "permanently" (i.e. user come back to Screen1 from, for example, Screen7 and still have the same state), you can implement a small database or DataStore for simple values and simply have your ViewModel fetch the state from it. If you only want to retain simple state across back-to-back screen then you can implement SavedStateHandle for your ViewModel