I don't believe it is legal to have different parameterizations for an array in SystemVerilog.
You have atleast 2 options that come to mind:
1) Use variables in classes that you can initialize, configure or constrain to different values to model different behavior. I suspect that your params are affecting data types, value ranges, etc. so this may not be viable.
2) Use different array identifiers to group classes with same parameters.