This is a great idea, but it could be made better (IMHO) if you added a 10th resistor to each decade.
Why?
As it stands you are potentially limited to resistance values +/- 1%. As an extreme example if you want 100.000K?, but your 100K is 1.01K and your 99.999K is 98.999 (though it is likely to be higher), the best you can do is 100K +1% or 100K -1%.
With a 10th resistor you are guaranteed of covering all the resistance values over the 7 decades.
So now that we can cover all the values with a little setup work (accurately measure the resistance of the first 4 decades) we can set the resistance to .1% (100?-999.9K?)!
To accurately set a resistance to .1% (and by extension .02% or .03% with constant room temperature and a lot more calculation ...), the user would have to measure and build a table of offsets for each of the first 4 decades (32 entries) and add these offsets to the desired value, before setting the jumpers
an example
to set 43.34K +/- .1%
look up 40K and the value is -.31K
look up 3K and the value is -.023K
so you want 43.34 - .31 -.02 = 43.01
if the the error sum is negative then you redo the calculation and "borrow" 1 from the first 2 digits
so to set 43.31 look up 42K + 1.31K
40 K is -.31K
2K is +.020K
so you want 42. + 1.31 -.31 +.02 = 42. + 1.02
so you set 0(100K), 4(10K), 2(1K), 10(100), 2(10), 0(1)
This may seem difficult (it ain't easy), but the complexity is a small price to pay for a .1% accurate resistance box again IMHO at this price.