A couple of comments. For your formulas at the group levels, you should have separate running totals for each group level, where the reset is based on the group level where you want the result. I think you should also use a running total for the count field, instead of a distinct count. Insert a running total where you select {aa_dch_LagTime;1.charge_id}, distinctcount, evaluate on change of group (encounter), reset on change of group(choose the appropriate group). Then create a formula:
{#datediff}/{#countchgID}
You will need two running totals and a formula like this for each group level or at the report level.
Note that you didn't show the datefields, and I'm assuming you want the datediff on the field where this is a payment, not where there is a null, so you have to be sure you are sorting the payment field so that the nulls are last.
-LB