I think I found a workaround to my workaround. I still don't like it. It's not clean or the most efficient but, I believe it will work. Please tell me what you think.
I took the original start_zones data and created a copy table. I unkeyed all the primary keys and used the query below.
Code:
update start_zones_copy set player_choice = zone_id;
I set the keys back to the way they were. No conflicts because player_choice = zone_id, don't know how else to put it. Then, I used INSERT IGNORE INTO the main table.
Clients with SoF won't notice a difference save a few dozen duplicates where that issue was raised above for a real fix.
The point of doing this was to essentially make copies of the rows which have primary keys. As you know, the maximum int player_choice for titanium clients is about 14 and SoF clients don't make use of that column.
Let me know if something doesn't seem right.