So if you have recently changed to a different ROM and you don't have 3G and your APN settings won't stay, here's the fix.
This works providing you have a restorable backup of a ROM with Working 3G and you have an external SD Card.
Boot into Recovery. You can do this via Rom Manager (Downloadable from the PlayStore)
Restore to the Rom which your Mobile Data (3G) works on.
After you have rebooted and you're back on your ROM with working 3G download Root Browser. This is available from the PlayStore.
Navigate to your System Directory.
Look for a folder named 'etc', and go into it.
Scroll down until you see 'apns-conf.xml' hold down on it and select copy.
Navigate to your External SD Card and Paste the file somewhere memorable.
Go into Rom Manager and clear all your caches (Dalvik Cache, Wipe Cache, Format System, clear data) just basically remove everything.
Do a clean install of the ROM that you couldn't get 3G to work on.
Once you're up and running go into the PlayStore and download Root Browser.
Go onto Root Browser, and navigate to your System Directory/folder and into 'etc'.
Delete the 'apns-conf.xml' that is in there.
Navigate to the External SD and copy the 'apns-conf.xml' from there.
Go back to System/Etc and paste the file in there.
Reboot your device.
Go to Settings > Look under Wireless & Networks, underneath Data Usage you should see More... > now select Mobile Networks > Access Point Names > press the menu tab in the bottom right > select Reset to Default. Select your carriers one! Congratulations!
I'm just speaking from personal experience, this problem caused hours of trouble for me and I want to help you guys, so please don't hate if it doesn't work for you! Thanks guys