Something to bear in mind with regard to 13.04 vs 12.04: 12.04 is a long-term support (LTS) release and 13.04 is one of the three intermediate releases between the LTS versions. While major Ubuntu releases are fairly stable in general, there will many more instabilities compared with the LTS versions because they use more recent software and contain newer features. In the LTS releases much higher priority is given to software stability and maturity, whereas the releases in between contain reasonably stable software but perhaps not tested as thoroughly. It's not quite "bleeding edge" but it is a lot of newer software and there are likely to be some compatibility issues and breaking of features that used to work.
Unfortunately that's the trade-off you make between LTS and non-LTS releases: new features versus solid stability. However, a lot of the problems encountered in the non-LTS releases get fixed pretty quickly by the Ubuntu community, so if you're comfortable on the terminal you can usually find a post via Google of somebody's hacked together fix. :)
Also, with regard to upgrading, from my own experience and the experiences of others I've read, it's pretty much always better to reinstall new versions from scratch. It's very difficult to make sure the upgrade process works well in all software configurations. I don't worry about it so much for non-critical systems because I'm pretty comfortable fixing the problems myself, but on any machine where I need stability (like my main work PC) I will always back up my junk and install a new version from scratch.
You might try searching for issues related to your particular hardware and the drivers in use. You can figure out this out using the
lspci command like so:
which will give you output with lines like these:
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
03:00.0 Ethernet controller: Qualcomm Atheros AR8162 Fast Ethernet (rev 10)
Then you can grep the verbose output for the device you're looking for:
anthony@anthony-linpc:~$ lspci -v | grep -A 6 Wireless
which will give you the kernel driver being used:
02:00.0 Network controller: Atheros Communications Inc. AR9485 Wireless Network Adapter (rev 01)
Subsystem: Lite-On Communications Inc Device 6628
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at f7d00000 (64-bit, non-prefetchable) [size=512K]
Expansion ROM at f7d80000 [disabled] [size=64K]
Capabilities: <access denied>
Kernel driver in use: ath9k
Note what I did is is used lspci with no parameters to get a quick list of my PCI devices (which should include your network adapters and your audio device, among other devices I commented out for brevity). In the second command I use the -v (verbose) option to show me the kernel driver used (for my WiFi card it's the ath9k driver). You might have some luck putting those into Google, e.g. "ubuntu 13.04 Atheros ath9k problems" or something along those lines. (Also, fyi, running lspci with sudo will give you more information, but I don't know how much will be relevant to you for this).
Personally it's been a while (I mean like years) since I've had hardware issues with Linux, so I'd be a bit surprised if it weren't a pretty simple fix. Sometimes the hardest part is figuring out what to ask Google.