Thanks for the suggestions, Whandall I figured there was likely an easier way but had not had a chance to investigate using bitshifting. I have updated my code below. As an aside, there is a lot of code so was hesitating posting the whole thing.
// A9 02 0D 00 00 00 03 00 01 00 00 02 00 06 00 00 A0
uint32_t statkal = (((notifydata[4] << 8) + notifydata[5]) << 8) + notifydata[6];
uint32_t statdistance = ((notifydata[7] << 8) + notifydata[8]);
uint32_t statstep = (((notifydata[9] << 8) + notifydata[10]) << 8) + notifydata[11];
uint32_t stattime = ((notifydata[12] << 8) + notifydata[13]);
char buff[100] = "";
sprintf(buff, "Data - Kcal: %lu Time:%lu Distance:%lu Step: %lu", statkal, stattime, statdistance, statstep);
Serial.println(buff);
As an aditional test, I actually impelmented the test suggested by Johnwasser. This yielded similar results. Therefore at this point I don't believe I have an issue with my code, and that some other influence is impacting this.
// A9 02 0D 00 00 00 03 00 01 00 00 02 00 06 00 00 A0
byte notifydatab[18];
for (int i = 0; i < 18; i++)
{
notifydatab[i] = random(256);
}
uint32_t statkal = (((notifydatab[4] << 8) + notifydatab[5]) << 8) + notifydatab[6];
uint32_t statdistance = ((notifydatab[7] << 8) + notifydatab[8]);
uint32_t statstep = (((notifydatab[9] << 8) + notifydatab[10]) << 8) + notifydatab[11];
uint32_t stattime = ((notifydatab[12] << 8) + notifydatab[13]);
char buff[100] = "";
sprintf(buff, "Data - Kcal: %lu Time:%lu Distance:%lu Step: %lu", statkal, stattime, statdistance, statstep);
Serial.println(buff);