the problem is that all the tables begin with the same name (array1). thus the [; array1 rename $1 ( message you're sending will rename every table in all 6 abstractions.
change the original arraynames to $0-array, and then go:
[rename $1( | [s $0-array]