Well, seeing that it's already basically a bunch of text fields, it's really out of my league, but I found a few interesting things to note at this link http://dev.mysql.com/doc/refman/5.0/en/blob.html
QUOTED:
The maximum size of a BLOB or TEXT object is determined by its type, but the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers. You can change the message buffer size by changing the value of the max_allowed_packet variable, but you must do so for both the server and your client program. For example, both mysql and mysqldump allow you to change the client-side max_allowed_packet value. See Section 7.5.2, “Tuning Server Parameters”, Section 8.6, “mysql — The MySQL Command-Line Tool”, and Section 8.12, “mysqldump — A Database Backup Program”. You may also want to compare the packet sizes and the size of the data objects you are storing with the storage requirements, see Section 11.5, “Data Type Storage Requirements”
Are you passing in foreign characters by chance? You may need to use a blob rather than a text field. Don't quote me though...
Beyond this, I simply don't know, but when I see all those text fields I think "corruption city". How often do you repair your tables?