Thanks for the reply, I'm sorry about the link, I should have put more thought into it.
These are really valuable information so thank you again for replying. But I don't think it works this way for 2 reasons :
The PGT file is not 136 bytes long but 260.
I don't have any personality values to use for block shuffling, as I believe it is only generated after the gift is received (hence the random IVs and Natures).
I tried nonetheless to program an decryption tool (without the block shuffling bit) but the result is nowhere near the decrypted file I got with the online tool (probably due to a bug on my end though).
My best chance is probably to understand the PCDWC4 source code but it feels wrong and too easy...
Edit : about the data structure, according to this reddit thread and my personal research, the .Pokemon Card T? file contain the Wondercard text alongside the .Pokemon Gift T? file which contain the gift data (What item or pokémon).