Class B synchronization failure

Hello ChirpStack colleagues,

I am attempting to Class B sync end nodes running the Semtech stack on a ATSAMR34J18 device, connecting to a ChirpStack gateway & server running on a Pi 3.
Join and Class A work, and I can get the node time synced with the MLME time message, but beacon lock is infrequent and lost in a single beacon interval. (Beacons are usually missed.)
I understand that this may be the wrong forum in which to ask, but any ideas or references are greatly appreciated. Thank you!