Flashing WR940Nv3/WR941NDv6(5?), Canadian firmware

Router in question has at least 4 versions of firmware. Chinese, US, UN (for countries that don't have retarded policy) and Canada. I have Canadian version of firmware. I tried all modified firmware for the router I could find, but it always results in it being locked out:

Error code: 18005
Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.

Here is all the router information I have:
Name on the box:TL-WR940
Name on device: TL-WR940(CA) V3.0
FCCID: TE7WR941NXV6
Alternative name for device derived from FCCID (I hope): TL-WR941NDV6.0

Default firmware information:
Firmware Version: 3.16.9 Build 160408 Rel.41381n
Hardware Version: WR940N v3 00000000
Only available Canadian firmware: http://static.tp-link.com/TL-WR940N(CA)_V5_161121.rar

As you can see CA firmware implies that device is somehow v5 (?!?!), not v3 and not v6. What the....

Attempted firmware (loaded from web interface):
LEDE: ar71xx/generic/lede-17.01.1-ar71xx-generic-tl-wr941nd-v6-squashfs-factory.bin, tl-wr941nd-v5-squashfs-factory.bin
Other firmware: moded US versions of dd-wrt and open-wrt for TL-WR941NDv6 (AR71xx) produced between Aug 2016-now.

In other words I have no idea which firmware to try now or how to modify existing Canadian firmware. I was about to try to use TFTP methods, but I am not sure how big CA version of bootloader is or how to find out. It has been years since I flashed anything directly, so I would rather know exactly what I am doing before attempting.

according to openwrt wiki, there is a bit of overlap between the two device lines, yes.
https://wiki.openwrt.org/toh/tp-link/tl-wr940n
https://wiki.openwrt.org/toh/tp-link/tl-wr941nd

In the second link there is also a warning for the equivalent of your device, citing the same error you get and a possible workaround, but I think that is valid only for flashing through the webinterface (that checks headers).

There is a method that uses automated tftp flasher (see first link) and seems to accept whatever file as long as it is stock firmware or LEDE/Owrt factory firmware that has a specific name and the tftp server is on a specific IP.

Failing that, you can try the manual flashing of the second article. You can adjust the firmware size used in the example by converting the amount of bytes of your firmware to hexadecimal. The offsets should be theoretically the same and are well off the bootloader partition.

Since that is (a modified) "uboot" bootloader, it might list partitions if you write "printenv" in its console. Or not.