Interesting. Mind telling me what debugger you are using? When I debug with Ollydbg the game never crashes.
OllyDbg, currently version 2.01. I'm using Vista 32-bit on a machine with a 64-bit processor (my Arch Linux install is 64-bit, though).
I launch GoS through OllyDbg, launch it with Debug -> Run. When I run to Akyu and talk to her OllyDbg will pause. Then choose Debug -> Execute till user code, after which it will pause again.
Look at the log window (View -> log) and I'll see stuff like this:
Log data
Address Message
File 'Z:\Genius_of_Sappheiros\Installed\東方蒼神縁起\東方蒼神縁起.exe'
New process (ID 000008F0) created
01181000 Main thread (ID 00000B78) created
*snip*
77B65C88 New thread 19. (ID 000012A8) created
Debug string: HEAP[
Debug string: Heap block at 089A3C90 modified at 089A7348 past requested size of 36b0
10000000 Module Z:\Genius_of_Sappheiros\Installed\東方蒼神縁起\Engine.dll
*snip*
77B4884E INT3 command at ntdll.77B4884E - Shift+Run/Step to pass exception to the program
Debug string: HEAP[
Debug string: Invalid address specified to RtlFreeHeap( 00980000, 089A3C98 )
77B4884E INT3 command at ntdll.77B4884E - Shift+Run/Step to pass exception to the program
I *think* the first heap error is the game corrupting the heap by writing more than it should and running past where the memory was allocated. It probably still works fine at that point, but that heap corruption sets the stage for the RtlFreeHeap exception which is what actually makes the game crash. The heap overflow is overwriting the malloc metadata (includes the size of memory allocated), causing the free to fail because it doesn't know how/where to free it.
EDIT: My guess about why the EmulateHeap fix (used in Win95 mode) keeps it from crashing is because it doesn't raise an exception and fails silently. It's implementation is mostly copied from the Win9x codebase.
When the debugger is still attached you can make the game continue running since the exception won't propagate to the game unless you tell it to. Just press the F9 key until it starts executing again.
You can talk to Akyu again and the game won't crash, but if you leave her house and return the debugger will pause again for the same error.