It's great to see you starting to use DBIx::Class! What you've written looks pretty great, but I don't really understand the purpose of Koha/DataObject/Discharge.pm. It seems to be basically a wrapper that provides no enhanced business logic and just increases overhead. In fact, in the borrower method, you use GetMember, when you could instead take advantage of DBIC and use $discharge->borrower() instead. I'd also recommend using 'borrowernumber' as the primary key, rather then borrower ( just to keep things standard and unambiguous. )
Other than that, great work!
Kyle