How to replace settings in WordPress plugin from a theme

You are already pretty close. Extending your example:

In your plugin put this:

$default_settings = array(
   'key_one' => 0,
   'key_two' => 1
);
$settings = apply_filters( 'example_filter', $default_settings);

Then a theme can change it like this:

add_filter('example_filter','my_function');
function my_function($settings){
   $settings['key_one'] = 1;
   return $settings;
}