Привяжитесь к requestCode. Когда у вас будет вызван листенер изменения времени, просто перезаписываете alarmIntent с соответстующим id.
Т.е. храните alarmId в поле requestCode.
Как-то так:
public void setAlarm(Context context, Integer alarmId, long milliseconds) {
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(ID, alarmId);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, alarmId, intent, 0);
Log.d("AlarmReceiver", "Started");
alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + milliseconds, alarmIntent);
}