OK, Omni, I think I've found the culprit, but not the reason. If you want to play around with it, start replacing bytes at 0x80165EBA when that set of events is running, and overwrite with 0x09 0xB9 0x02 0x09 0xB9 0x04 0x2E 0xFF 0xFE 0x00 0x00. It'll short circuit the script when you choose "But..." and the events should run normally, minus the skip.
There's a script command in there that I think was added to the main action script engine for this area alone, 0x78. The purpose of it seems to be to pick dialog from an array based on who the character in a given slot is. It takes 4 arguments, the first two of which appear to be Slot (within the area presumably, though I doubt you'd get good results going beyond 5) and the index of the text table the dialogue should be retrieved from. The third one is, I think, a "sub-block" number within the text pointer array. That one array holds all or most of the custom lines for different characters you can pick. I don't know what the fourth one is. The mere fact that this command runs once during those events seems to be sufficient to crash the game.
If you pick "But..." once, it runs the command for the person in slot 4 of the room as sort of a preload for a while loop, and sets bit 1 of flag byte 0xB9 on. If you choose the other option, it also sets bit 2. Then the control is withheld and the background engine checks more condition scripts. Having bit 1 on but not bit 2 causes a second script to run that does Nanami's repetitive line, followed by slot 5, then repeats for slot 6, and slot 4 if you keep hesitating. Then of course this second active script is repeated until you make the right decision. I tried bypassing it, but even if I set bit 2 on right after running 0x78 in the first script, the game still crashed. So far only eliminating that command has fixed the issue with choosing the second response.
Edit: Eilie got a little more irritated than usual with Riou.
Edit 2: As ever lately, it appears to be a missing script command. When you first pick "But..." that script runs a command that sets bit 0 of 0x80025664 on. The next script that round-robins the responses should unset it. Otherwise the state of all the event flags—Flag-0xB9 & 0x10 is true after Flik says "Don't be ridiculous!", and Flag-0xB9 & 0x20 is still false—and that particular control bit being on, satisfies the background script conditions for a script that will load another file in place of one the game currently needs. I'll have to check the Japanese version to see what's there. It may be a different set of events is supposed to unfold, and the localization broke it, but I sort of doubt it. I think somebody would have mentioned it by now.
If you can poke memory at all, just unset the least-significant bit of that address after the first battle, or even after Flik responds when you agree to fight.
It's another one of those scripts without much padding, so I'll have to write a proper patch and test before I can claim to know a good fix for it.