You will need to compare a logcat, ddms dump and maybe even strace and tcpdump from a working 1.6 user, a stock 1.5 build, and a non-working 1.6 user.
Also compare the /system/etc/apns-conf.xml file from all three.
I'm also thinking the PRI, Baseband radio, Software version, and Hardware version from all three might need looked at as well. These should all match, but I never checked or even thought to check.
Here's a stock 1.5's info:
PRI - 1.70_003
Baseband - 1.04.01.09.21
Software Version - 1.56.651.2
Hardware version - 0002
Stock 1.5 apns-conf.xml contents-
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- This file contains fake APNs that are necessary for the emulator
to talk to the network. It should only be installed for SDK builds.
This file is not installed by the local Android.mk, it's installed using
a PRODUCT_COPY_FILES line in the sdk section of the toplevel Makefile.
-->
<!-- use empty string to specify no proxy or port -->
<!-- This version must agree with that in apps/common/res/apns.xml -->
<apns version="6">
<apn carrier="Android"
mcc="310"
mnc="995"
apn="internet"
user="*"
server="*"
password="*"
mmsc="null"
/>
<apn carrier="TelKila"
mcc="310"
mnc="260"
apn="internet"
user="*"
server="*"
password="*"
mmsc="null"
/>
</apns>
This is what builds the telephony database. This one will be different from the 1.6 one, as changes were made. Try pushing in this one, or making a frankenmorph version with this info added into what's in 1.6.
You'll need to delete the data/data/com.android.providers.telephony/databases/telephony.db database while in recovery and let it get recreated, of course pull a copy as a backup first.
I can post up the ddms dumps, tcpdump and logcat from a stock rom tomorrow evening. I can't actively run/test/build the 1.6 ROM, but I can be an extra set of eyes and a helper monkey!