@jprafael I have some good news.
I opened the tp-link eu .bin (https://static.tp-link.com/2021/202102/20210219/Deco_M5_V1_V2_V3_210203.zip) in a hex editor and found some more special_id's for you to try. These ones are not in frank's sources.
{product_name:M5,product_ver:1.0.0,special_id:53570000}
{product_name:M5,product_ver:1.0.0,special_id:42340000}
{product_name:M5,product_ver:3.0.0,special_id:53570000}
{product_name:M5,product_ver:3.0.0,special_id:42340000}
{product_name:M5,product_ver:3.0.0,special_id:54570000}
I would suggest swapping two of the ver:1.0.0 id's and three of the 3.0.0 ones in frank's sources for these, and recompile. That should get you a flashable firmware!
Here is the relevant section in tplink-safeloader.c -- just copy-paste this over the original code, you'll notice that I already swapped the id's for you. Let me know if it works.
/** Firmware layout for the Deco M5 EU v3.0 */
{
.id = "DECO-M5-EU-V3.0",
.vendor = "",
.support_list =
"SupportList:\n"
"{product_name:M5,product_ver:1.0.0,special_id:55530000}\n"
"{product_name:M5,product_ver:1.0.0,special_id:45550000}\n"
"{product_name:M5,product_ver:1.0.0,special_id:43410000}\n"
"{product_name:M5,product_ver:1.0.0,special_id:4A500000}\n"
"{product_name:M5,product_ver:1.0.0,special_id:53570000}\n"
"{product_name:M5,product_ver:1.0.0,special_id:42340000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:53570000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:42340000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:54570000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:4A500000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:41550000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:4B520000}\n"
"{product_name:M5,product_ver:3.0.0,special_id:49440000}\n",
.support_trail = '\x00',
.soft_ver = NULL,