Hi David,
For your first question, you'll want to take a look at our Theme Definitions topic:
https://www.actiprosoftware.com/docs/controls/avalonia/themes/theme-definitions
There are several options available that allow you to specify a default theme for different classes of controls. For example, you can use the EditAppearanceKind property to specify the default theme (Outline/Solid/etc.) for edit controls like TextBox or ComboBox. For the "Variant" settings (aka semantic color variants), the UseAccentedSwitches property allows you to specify that the accent variant should be used by default for switch controls (radio button/checkbox/toggle switch), but not the success/warning/danger variants.
The linked topic above discusses how you can configure those settings at startup. If you want to make changes after the application has started, take a look at the "Code-behind Example" near the bottom of this topic:
https://www.actiprosoftware.com/docs/controls/avalonia/themes/getting-started#theme-definition-setting
It shows you how you can access the ModernTheme at runtime, change theme definition settings, and refresh the application. In your settings page that allows users to change settings, you'd either need to refresh the theme after every detected change or give the users an "Apply" button that would update everything at once.
For your second question about the color picker, I'm not clear if you're wanting to provide a control for users to select the base color used for the accent semantic variant or if you're just wanting to retheme the appearance of the ColorPicker itself to accent itself with the selected color instead of the accent color.
If you're trying to let the user pick an accent color, our theme system doesn't currently support setting a specific color as the accent color. Instead, the user can select a Hue to be used as the base color and is discussed in the topics linked above.
If you're trying to change the ColorPicker appearance, you'd have to apply a custom theme and/or style to the control that overrides the various color properties (Background/Foreground/BorderBrush) with the selected color. If this is your intent, I would caution you that this may not have the desired result since Background/Foreground colors have to maintain a level of contrast to be readable. For example, if you allowed the background color to match the current selection, you'd have to switch between light and dark foreground colors to make sure the color value can still be read on the background (assuming you still display the color value).
As for how to save/restore the application settings between sessions, we do not currently have support to save/restore theme definition configuration, but it is something we have noted for a future release. Until then, you'd need to manually save individual settings like you would other application settings and then reapply those to the theme definition at startup.