The answer to DISTINCT + custom partitioner is: you can't do that anymore (as I just found out). DISTINCT now uses a optimized special partitioner.
See:
https://issues.apache.org/jira/browse/PIG-3385
A workaround:
A = //some tuple...;
B = GROUP A BY field PARTITION BY custom;
STORE B INTO 'foo' USING ....;
Later:
B = LOAD 'foo' USING ...;
A = FOREACH B GENERATE FLATTEN($1);