What a giant mess. Like what you are trying to do but as I mentioned to you before in one of my messages I would start new from the ground up and implement everything fresh instead of from a backup. Yeah it will be hard work but you will only get the fluidity and cross carrier functionality this way. I went and changed decompiled some apks, changed a few things and had someone test them for me. I then browsed the file structure and saw allot of stuff that makes no sense and not even sure how it got to be that way. Here are some examples;
in the system/etc directory there is a apn.conf file. not sure what purpose this even serves. On AOSP ROMS the apns-conf.xml resides in system/etc but this file is just a plaintext file in your ROM it is not designated as an .xml not sure if your mms application is trying to read the APNs from this file as AOSP would do or from where, surely it is not reading them for mms from framewrok-res.apk as I did edit the apns.xml in that apk, and also modified the build.prop with a few other changes to see what would work.
Also you have a system/etc/init.d folder but in system/etc you have three scripts just floating in there, not sure what they do or what purpose they serve or even if they are being called by anything. One of them is for the quemu emulator and setting ip settings on an ethernet interface.
There is so much more that i could write here, one question I thought you where running the v4 kernel on the ROM, my system information showed the stock htc kernel.
Anyway, here is where I am coming from. When i began doing developing I was very harshly criticized by some of the devs (one in particular I will not mention but who I owe allot to). Please understand that I am not trying to discourage you. On the contrary I am trying to push you to accomplish what you truly want and that is to excel in your development work. Easy fixes and what i call the cut and paste method of developing will always keep you running like a chicken with your head cut off. Because one fix will probably break something else along the way. Back in another forum I saw a Dev trying to load his ROMs with so much stuff to make them attractive that he ended up just making a mess of what he had.
I owe 2fast allot, but one thing i learned from him that has been the best lesson i learned is the way to develop a ROM from a base. You would be surprised how much time and effort it takes, but if you looked at the files in xfuzzion, iced speed, etc you will see a cleanliness though out that is a reflection of the work spent. I dont have the Hero S activated (I exchanged phone models last week) so i can not troubleshoot the mms issue for you to find out what in the world is going on, your fix might work but in my opinion it is not the cleanest and thus why I was wanting to look at this. So for you and any other person reading this here is some wisdom i learned and whoever wants to use it can and whoever does not then oh well....
First and foremost LOG WHAT YOU ARE DOING! Keep a text file on what changes you are doing to the ROM...this is so valuable in the future, specially when making smali edits, also it helps you keep a rack of things. While we worked on IcedSpeed, the developers logged changes and then uploaded the commits to a central ftp server where we would be able to check out the newest version and also read the work included by the developers themselves. IcedSpeed went through like 12 revisions in about 3 weeks of many hours before it went public. Always have testers for each carrier, be patient (2fast taught me that quite well, as I was always ready to move on but he was never satisfied with the result just yet...at the end I realized that this was a crucial virtue to have)
Begin with your base ROM, and debloat, this means not just your apks, but for example sense has all the ebooks under /etc and allot of junk in resources/customize. go through the file structure and get rid of all the added junk to the phone. Now get the basics working before adding anything else. MMS, 4G, ADB, USB storage, work on each one at a time, and make sure they are working before moving on. DONT go easy on problems, have it working the right way, not by some half @$$ hack. This will help you understand how it all works together and will increase the know how for your own benefit. include the kernel you are using on your skeleton.
Now after the skeleton is working then add your APM, and other features like beats, and what else you want...take your time work out the bugs with patience. Always have your testers give feedback. Good testers are hard to find. the ones that break everything are the best.
It takes allot of work. Trust me I did not just take 30 minutes out my day to barage you. The opposite. Take it for what its worth. Get some testers. Pull the ROM for a few weeks work on it from the ground up again, learn a few things along the way. When you are ready to relaunch it will be all you ever wanted it to be and then more, not only that, when anyone has an issue 9 out of 10 you will know exactly if it is an ID-10-T issue or a real issue with the ROM.
If I knew what had been done and where I would be much help with it, but as i look at the spaghetti mess I see in the file structure I cringe and just want to yell. its like walking into an episode of hoarders...lol I like what you are doing, not sure how it would end up if you started new, but I encourage you to redo it all from the base as I did in the past and build it all from the ground up again....
best of luck