I realize this is slightly dated and I am guessing you found your fix but since I just bumped into the same issue on an installation I wanted to post a solution.
Check the CoreMessaging_SaveMessage stored procedure.
My proc had a check at line 60 that I did not see in the repo. I am not sure why my installation had it... I changed the <0 to <=0 which fixed the issue but I the repo shows the check is removed entirely which is probably the right fix. Not sure why the proc was not in sync with repo...
IF IsNull(@ConversationID, -1) < 0 -- no reply
UPDATE dbo.[CoreMessaging_Messages]
SET [ConversationID] = @MessageID
WHERE [MessageID] = @MessageID
You can compare to the repo version here:
https://github.com/dnnsoftware/Dnn.Pl...The proc is built around line 1858 with the isNull check removed @ line 1903
If your installation has the isNull check then every initial insert has a 0 as it's ConversationId and cannot be replied to.