I don't know what causes your canker sores but I do know what causes mine. I started having them when I was 18 and at age 60 I still have them although less frequent and less severe.
What causes my canker sores is small injuries to the gums or tongue, particular injuries caused by eating crunchy, salty food. The salt sometimes makes a very small injury. A canker sore forms as my immune system overreacts to the injury. There is inflammation in the canker sores and if I have a bad sore or sores, my entire body reacts and I am badly fatigued.
Prevention involves avoid crunchy, salty foods and keeping my mouth moist when I am eating any crunchy or salty food.
Regards.