What people need to understand is that the memory allocation you do in the launcher (any launcher, or manually via the -Xms/-Xmx JVM arguments) is not the total amount of memory Java gets to work with. It is only "heap" memory, that is, one of multiple different workspaces the java VM uses. So not only is it not the entire workspace, but it doesn't even include the memory that Java uses to run itself. You're controlling just a small fraction of the overall picture.
And unfortunately, the heap space is completely unrelated to why heavily modded Minecraft crashes with memory errors on 32bit Java VMs. You can set anything you want there, it won't help. It may sound harsh, but you're probably not going to get things stable without a 64bit OS. That's just the shoddy way that Minecraft (and several mods) are implemented.
However, you should check the exact error message that the crashlog is giving you. The specific out of memory error that you can't fix is only one possible out of several, and the others can be fixed. If you're lucky, you'll only get a PermGen error, for example. That one takes all but 30 seconds to fix.