I put forward the following suggestion that would solve 2 issues.
Allow users to allocate existing funds to future direct debits.
In effect automatically setting up a pot, adding the required amount and transferring it. Then using that pot to fund that direct debit.
That’s certainly the easiest way I can see it working. (Allowing the user to access the pot until the DD is taken)
I suggest this email reduce the number of failed direct debit and will lead to lower costs to both Monzo and users.