I don’t think it’s a TCL limit. I think it’s failing to get as much memory as it wants. (Although, it seems like the core file would be closer to 393216 kbytes — maybe you’re running out of drive space for the core, or maybe TCL’s buffer growth algorithm grows exponentially.)
I’d make a new script that only reads and processes a few records at a time. Look for multiple copies of large vars and clear those out, too. (set original_file_data {})
You could also try to change your ulimit(s) while your logged in (up to any hard limits) and run the script again, but I wouldn’t recommend it without checking available memory/swap/AIX admin attitude. Other programs could start to run out of memory and bad things could happen.