Is this for verification only, or also for synthesis? If synthesis, what tool are you using?
If this was for Xilinx I know I would be explicitely checking if this is supported. Because yes Xilinx tools support interfaces for synthesis (and Altera as well AFAIK), but I would not count on them implementing the full spec without double checking things. The best sanity check for
"Is this valid SystemVerilog?" is usually to read the LRM or to run it through Modelsim. Modelsim adheres pretty closely to the standard in my (admittedly limited) experience. With Xilinx it's a crapshoot, and for Altera I hear it's a little better but not by much.
You could make Interface_SimpleBus a parameterized interface, complete with the modport you already have. The parameter would be the array size. Another option would be to try a non-ansi port declaration, and see if the synthesis vendor du jour did implement interface arrays for that.
Worst case you could use a
generate block to do something similar to those
assign statements, but that is just stupid. If that is the only thing that works it is still better than 256
assign statements, but there really should be something better that is supported by synthesis tools.
Based on other implemented featured (for Xilinx) I'd give the parameterized interface a reasonable chance of success, but only one way to find out.