Just a small observation:
TextClasDataBunch does not seem to pass pad_idx to the pad_collate which causes problems if pad_idx is not set to its default value 1. Probably pad_first should passed into pad_collate in the same way- which would however require the pad_collate-function to actually depend on the pad_first parameter.