Customize plugin’s output: filters or setters: looking for an advice

Questions of the ‘which is best’ type are impossible to answer, because they depend on the eventual use case. If the users who are building the individual sites are familiar with object oriented programming the first approach may be cleanest. If they are less schooled in OOP, you might go for the filters.

But I think you are overlooking the easiest approach, namely delegating everything to the options page of your plugin. If all you need is 20 to 40 different classes to accommodate layout issues, you can simply define an array with default variables/classes inside your object class and, on initialization, look if some of those need to be replaced by values in the options array.