BOOLs are BOOLs and they just don't behave like INTs or DINTs. Blame the IEC 61131-3 committee.
You might be able to copy the whole UDT to a DINT array, then copy just those sub-elements the contain the BOOL elements into the new UDT. But that's going to require very careful examination of the UDT structure and will malfunction if somebody changes the structure of either UDT in the future.
Doing large numbers of XIC/OTE or assignment operators is tedious, but it's manageable. You could wrap up the code inside an AOI or just call a subroutine at an appropriate time instead of dropping a big chunk of code inside your automation code.
I recently did a project with 90 identical actuators, so I had many programs that relied on brute force code to do the same thing again and again.
One tool that saved me huge amounts of time was Notepad++, a text editor with a lot of very good search/replace and automation tools.
I was able to copy-paste one rung from RSLogix 5000 into NP++, then duplicate it 90 times, increment the array number using the Column Editor feature, then paste it back into RSLogix 5000 as Neutral Text and create 90 new rungs, all while online in RUN mode.
Sure, it was brute force, but once I got the hang of it I could do 90 similar rungs in a minute or two with no errors or typos.