Hm, that's exactly what &custom= is for and how it should be used, so it's not clear what the problem could be here. Is the &amount= parameter at least affecting your item's price correctly?
If you could email us to provide the URL of a page where you're using this button code and the Transaction ID of an order which should have passed the custom value but didn't, we can check your button code and investigate how that transaction was processed.