Allow admin to discount line item price or give a user credit
This sounds like a good use case for commerce_coupon + commerce_discount. 


Add these two modules (and dependencies). 
Add a new discount for an arbitrary % or $ off.  
Add a new coupon code for a particular user.


If the client wants to lock it down even more, you can modify the discount to specify a particular course/product that it applies to. You can also modify the coupon code to only apply to a particular user with a limited number of uses, date range it's valid for, and more.

You'll definitely want to add an "Order discount condition" to the discount to ensure that other products, shipping costs or donations are not discounted.


Once the client has set up the discount and coupon code, they can send this to the user they need to give the discount to. 



It's difficult to say where you're getting stuck applying the discount to the order, but I'd guess it has to do with the relationship between discount + coupon. At first I found it really confusing why discounts and coupons needed to be set in two different places.

It also appears that the commerce_discount module is incompatible with default configuration of commerce_account_balance. No matter how a coupon code is applied or how much of the total it supposedly reduced, it still requested a downpayment to cover the total (undiscounted) balance. It's likely this could be fixed by changing the order that the rules are executed so that the discount is run before the balance is checked.