Any portal filter that you define has the potential to slow things down and by much more than what you report here. I once brought an entire system to its knees by testing a single, filtered portal. FileMaker has to evaluate that filter exptession once for every related record. In my case that was over a million records due to using a Cartesian join. In you case, any such delay is multiplied by 31.
Don't filter the portal, filter the relationship. That might mean 31 occurrences of you portal's table where you now have one and with the same number of match fields added to the parent table but perhaps worth it, if it improves performance. (And yes, not all filter expressions can be replaced by relationships.)
Use a repeating field in order to display and edit data, but with scripts that move that data in and out of the repeating field in order to keep it in synch with your related records.