I upgraded my rogers spica via NPS last month. For a while I was stumped where you are, dragoshell.
I found that when NPS became stalled at 0% of the download to phone phase, it was safe to simply unplug the phone, shut it down by removing the battery, and then start it back up again. I found that after doing this my phone booted up exactly as I'd left it including settings and messaging conversations. Obviously I won't promise that if you do what I did you won't brick your device, but I definitely went through that process at least 3 times. It seemed like when NPS crashed at 0% of "downloading to phone", all that the phone had received before the crash was an instruction to await a file transfer, ie it stalled out before the phone tried to actually install anything.
It seems like most people succeed from this point by letting the update crash and using the emergency recovery procedure in NPS. If you're not running a 64 bit OS you should just disconnect the phone at this point, remove the battery, boot it into download mode, reconnect it and let NPS do its emergency recovery. Just be aware that NPS's instructions for putting your spica into download mode are completely wrong. I can't remember the key combo to use but I know NPS will give you a very clear colour diagram of which buttons to hold except they're the wrong ones.
For my part, I'm running Windows 7 64 bit. I was able to put the phone in download mode while unplugged and then attempted to start NPS' emergency recovery, but I wasn't able to actually install the firmware this way. The reason seemed to be that while the phone is in download mode, the USB Debugging flag is not active, which is a problem because Samsung's drivers for non-debugging mode install as seperate device. Some sort of device component umbrella is missing and plug-and-play was telling NPS that yes, I had attatched a samsung device, but no, I had not reconnected the phone it was just interacting with. Consequently NPS couldn't do it's emergency thing.
Unfortunately, as far as I could discover it isn't possible to boot the phone into download mode without disconnecting the USB cable AND powering off the phone. If there's a way to get into download mode without plug-and-play telling NPS you disconnected the spica, that'd probably get you past this, but I couldn't find a way.
I'm pretty sure my download-mode-recognition issue was tied to my OS. The 32 bit drivers straight up didn't work at all, and the 64 bit drivers I found I don't think officially exist. Someone on this forum posted a megaupload link for them, I think they found them on the german(?) version of Samsung's website. It seems like every translation of their website links to different files and conflicting info... I doubt this suprises anyone.
I did a lot of screwing around before I had success, so I can't give an ironclad process, but as best as I can remember this was the sequence that ultimately did the trick. Some steps may be superfluous, I really am not sure.
1) open device manager, plug in your phone, and note which entries in device manager pop up (you should see several devices become attatched, check modems, usb devices, and storage mediums). Uninstall all of them. If windows then detects an unknown device, do not allow the driver installation to proceed; ignore the dialogue boxes until everything's uninstalled, then unplug the phone and cancel out of them. Do not reconnect your phone yet.
2) open add/remove programs, and uninstall everything published by Samsung. Additionally, look for any Nokia software or drivers... believe it or not these are part of Samsung's software package. If you actually have a Nokia phone, just reinstall it later... last I checked their software works normally.
3) reboot. Run a registry cleanup (I use ccleaner, always back up your .reg file) and delete any keys without associations, then reboot again. Samsung's software doesn't even uninstall itself properly, it will leave behind a ton of stuff and then find it again when you reinstall, unless you do this step.
4) download Kies from Samsung. Install it, then use it's self updater for both the software package. Uncheck every option that makes Kies do anything at all during startup. To be sure, go to start->run->msconfig, open the startup tab, and uncheck everything that might have to do with Samsung. Then close Kies *all the way*... double check the task tray, then end Kies and Samsung processes from task manager. Stopping a Kies component often starts a different one so check twice. Apparently it wants to have a process running at all times which opens Kies for you when you manually open Kies. I don't know man.
5) open add/remove programs and uninstall the Samsung driver suite ONLY. Leave Kies alone. If the Nokia package is there leave it alone too. Then reboot.
6) Run the installer for the 64 bit spica drivers. Search this forum for them, I have lost the thread they were in. Afterwards reboot again.
7) Uncheck USB debugging mode on your phone. Attatch your spica to the USB cable and let the plug and play driver installation take place. Then unplug the phone, re-check USB debugging, plug it back in, and allow that driver to install as well. Then unplug the phone.
8) Start Kies, then plug the phone back in. Kies should identify it as something other than removeable storage media, but it may not yet show a model number. From the Kies menu, do the update mobile device driver thing, allow it to download a driver from Samsung and reinstall the phone to the computer. When this is done, disconnect the phone, un-check USB debugging, plug it back in and do the same thing again. (I don't believe this entirely replaces the 64 bit driver files you already installed, but I do think it replaces some of them. This is what I did, you can try not doing it.) Then Disconnect the phone, check USB debugging once more, and reboot your PC.
9) Open task manager and ensure Kies hasn't started any processes on the sly. Then download and install New PC Studio. Allow NPS to update itself. Then reboot one more time, close NPS and its sleeper versions, and make a final check in task manager for anything related to Kies, Samsung, or mobile device connection monitering. Stop anything you find.
10) Power down your phone, remove the SIM card and the SD card, then start it back up. In settings, find and check the boxes for "allow non-Market applications", "allow mock locations", and "stay awake". Be sure you're in USB debugging mode.
11) On your PC, navigate to the installation folder for NPS. Right click on the main executeable, click properties, open the compatability tab, and check the box for "run this program as an administrator". Apply that setting for all users. Granting 1-shot priviledges as you start the software doesn't seem to work, I think because during the firmware update NPS opens a new process without offering you the chance to grant adminitrator priviledges, then promptly fails due to being blocked by the OS.
12) Start NPS, and wait for it to load fully. Plug in your phone and wait again... NPS will probably detect a generic device right away, but after a little bit should identify it as a Galaxy Spica i5700.
13) Without unplugging your phone or closing NPS, deactivate USB Debugging mode on your spica. Wait for NPS to figure itself out. IIRC it will conclude that you have attatched a Samsung USB Modem, though all I remember for sure is it won't know it's an i5700. Once NPS is all caught up, unplug the phone, reactivate USB Debugging, plug it in once more, and wait for NPS to remember what it is.
14) Use the firmware update option in NPS. If I've remembered everything correctly, it should handle itself from here barring a few clicks of OK.
DISCLAIMER: the firmware I got by doing this appears to be a memory hog. It works great for everything except actual phonecalls, during which it crashes a ton. I've installed a bare minimum of anything, gone down to 2 home screens, and do use a task killer... it's still probably my fault, but expect issues if you like to run shmancy resource hogs. I've only seen it happen during calls and it seems to happen fastest when I've left the browser open.
Anyone that gets through with this, let me know.