Rhea,
The MEMVARCOUNT setting afects two things; 1) the actual number of variable names that you can have and 2) the amount of memory reserved for memory variable storage.
If you can issue a DISPLAY MEMORY command right after the error you will see all of the memvars defined. At the end you will see information about the number allowed and the number defined as well as the memory consumption.
Arrays use one variable name, but they occupy space for the entire array. Because of this you may have less than the number that you defined but still be consumming all of the meory available.
You have two choices here, increase the MEMVARCOUNT setting or redesign your screens so they don't use so many arrays.