That error message isn’t great but it usually means that when you try to compile the program, the compiler cant figure out which subroutine to assign scratch slots to.
This often happens when you try to use a MaybeValue directly as you have here with AssetHolding.balance.