You can validate the MIC of a full LoRaWAN OTAA Join Request (as seen in the gateway’s Traffic page) using this online decoder; set a dummy value for NwkSKey (e.g., 00
; it’s not used), and paste your AppKey as known in TTN Console as the AppSKey.
Any chance this is a LoRaWAN 1.1 device, and hence is using an incremental value for the DevNonce? If yes, aren’t you seeing OTAA shows "Activation DevNonce not valid: already used"? Also, do you still see “Status: not seen” for the device? (If not, then the Join Request was accepted at least once.)
(Aside: in the Data page in TTN Console you won’t ever see a Join Request, but an “Activation”. Just like a Join Request in the gateway’s Traffic page, it has an orange icon.)