After a few days of work, I was able to fully mimic the behavior of TF 1.x in my PyTorch model. I have created a new CustomGRUCell where the order of the Hadamard product for the calculation of the new candidate tensor is changed. See the note in the PyTorch docs for clarification: https://pytorch.org/docs/stable/generated/torch.nn.GRU.html
This CustomGRUCell has been implemented in a multi-layer GRU (which allows for multiple layers with different hidden sizes, another feature PyTorch does not have), and this was then used with the weights copied from the original TensorFlow model.
For anyone interested in the solution, see the full code on my GitHub: https://github.com/robin-poelmans/CDDD_torch/tree/main