Well first off, if the data really is important you might want to take it to a data recovery company and have them get the data back. Its not a good idea to learn data recovery on the job, there's not a whole lot of room for mistakes.
If the data is important, but not important enough to warrant paying for its recovery, then you may want to try some of these tools which can be used in recovering data from damaged hard drives:
safecopy | freshmeat.net
recoverdm | freshmeat.net
myrescue | freshmeat.net
These are all included on the FCCU forensic boot CD, which can be modified to boot from a USB stick. Or you can customise your own BackTrack 4 PreFinal USB pretty easily (check the Offensive Security blog) and add these tools to that.
Now apologies here if in the following paragraphs Im just telling you something obvious you already know, but I'm unsure of what you're doing with that dd command since the "if=" and "of=" switches are missing from what you have put in your post, and you've also specified partitions instead of disk devices for the inputs and outputs.
Normally a command like this (and Ive edited it a bit to show source and destination) would be trying to copy the disk partition on /dev/sda1 to /dev/sdb1:
If the partition on the SDHC device is unrecognisable, and assuming that the SDHC is /dev/sda this command may give you problems.
dd conv=noerror,sync if=/dev/sda1 of=/dev/sdb1
This command would copy the entire contents of the /dev/sda storage device (including all partitions, damaged or not) to a file on disk. Once its there you can use various file carving techniques on the file to get data back
If you haven't already, you might also want to post your question at a forum dedicated to computer forensics or data recovery - this forum is more concerned with penetration testing.
dd conv=noerror,sync if=/dev/sda of=/path/filename