fix-copies doesn't work well in some cases
## Environment info

- `transformers` version: 4.11.0.dev0
- Platform: Windows-10-10.0.19042-SP0
- Python version: 3.9.5
- PyTorch version (GPU?): 1.9.0+cpu (False)
- Tensorflow version (GPU?): 2.5.0 (False)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: <fill in>
- Using distributed or parallel set-up in script?: <fill in>

### Who can help
@sgugger @patrickvonplaten @LysandreJik 

## Information

When I worked on `TFEncoderDecoderModel`, I found in some cases, `fix-copies` doesn't work well. See below

## To reproduce

Steps to reproduce the behavior:

Case 1: 

  a. Put `inputs2 = inputs` after this line in `modeling_tf_bert.py` (just a dummy change to show the issues).

https://github.com/huggingface/transformers/blob/95f933ea855bce0c18a665f7a6a3b8ae9ab11739/src/transformers/models/bert/modeling_tf_bert.py#L628

  b. run `make fix-copies`, you will find nothing is changed. However, `TFRoBertaMainLayer.call` indicates it is copied from `TFBertMainLayer.call`, as shown

https://github.com/huggingface/transformers/blob/95f933ea855bce0c18a665f7a6a3b8ae9ab11739/src/transformers/models/roberta/modeling_tf_roberta.py#L477

Therefore, the (dummy) change on `TFBertMainLayer.call` (1a) is not applied to  `TFRoBertaMainLayer.call`.

Case 2:

  c. If we continue, and also change

https://github.com/huggingface/transformers/blob/95f933ea855bce0c18a665f7a6a3b8ae9ab11739/src/transformers/models/bert/modeling_tf_bert.py#L613
to 
```
):
```
and run `make fix-copies`, `TFRoBertaMainLayer.call` will be modified, but the result is very strange. See the attached file.
[results-2c.txt](https://github.com/huggingface/transformers/files/7172805/results-2c.txt)

Case 3:

  d. Revert the changes in `TFRoBertaMainLayer.call` (made by `fix-copies`), and keep the changes on  `TFBertMainLayer.call` (1a & 2c). Now change

https://github.com/huggingface/transformers/blob/95f933ea855bce0c18a665f7a6a3b8ae9ab11739/src/transformers/models/roberta/modeling_tf_roberta.py#L491
to
``` 
):
```
(so it becomes the same as L613 in `modeling_tf_bert.py`).
Run `make fix-copies`, you will see the change in `1a` is correctly copied to `TFRoBertaMainLayer.call`

## Expected behavior

It seems that type hints like `) -> Union[TFBaseModelOutputWithPooling, Tuple[tf.Tensor]]: ` doesn't work well with `fix-copies`.

Furthermore, single-line or multiple-lines will give different issues. For examples, changes on

https://github.com/huggingface/transformers/blob/95f933ea855bce0c18a665f7a6a3b8ae9ab11739/src/transformers/models/bert/modeling_tf_bert.py#L902

I expect the changes on `modeling_tf_bert.py` will be correctly copied to `modeling_tf_roberta.py`.