Andy,
Your approach correct, It should work and in my project, we done in same way.
I advise pl do double check your custom implementation is "Active" and triggered as this BADI is Single use means only one implementation is "Active" at a time.
Hope this helps.