Прямой ответ: приложение появляется дважды, потому что Android Market и Android OS рассматривают два разных пакета как два разных приложения. Код может быть одинаковым, но если пакеты разные, приложения совершенно разные
Android Market идентифицирует приложения по имени пакета. Я подозреваю, что это связано с тем, что ОС отслеживает программы по пакетам ... имеет смысл, что вам не нужно устанавливать два пакета с одинаковым именем, как ОС узнает, какой из них вызывать? Поэтому, если вы устанавливаете пакет с тем же именем, что и пакет, который уже установлен, ОС увидит его как обновление пакета и позволит новой программе получить доступ к старым данным пользователя.
Вы заявляете, что пакеты имеют одинаковый идентификатор, я предполагаю, что это идентификатор пользователя. Это позволяет вам обмениваться данными между пакетами. Больше информации здесь:
http://developer.android.com/guide/topics/security/security.html#userid
Рекомендация: выпустите небольшое обновление до старого пакета, предоставив все необходимое для того, чтобы он мог поделиться своими данными с вашим новым пакетом. Затем выпустите новый пакет с кодом, чтобы импортировать пользовательские данные из старого пакета (нужен тот же UserId и подпись). Переход будет плавным для пользователя (без резервного копирования и импорта вручную).