You don’t need to add bos through the tokenizer. shift_tokens_right will put eos at the first position for you. (shift_tokens_right in modeling_bart.py makes eos the first token always.)
That’s also how it’s done in fairseq, where mbart was trained.
Pegasus was probably trained with <pad> at the first position, but seems to finetune well enough with <eos> at the first position.

Does that answer your Q?