To get around the filtering issue, instead of creating a million different filter groups, I created a separate grid view of the register using a SQL data adapter querying the solution table. Very basic SELECT * FROM lima1.XFW_LIM_Register (fixed term planning register table - change to limb1, etc. as necessary). The problem with doing this is none of the security defined in the solution applies to this grid view so you have to be very careful in limiting access to the grid view to admins/super-users.
When it comes to migrating formulas I believe they are included in the JSON extract (Settings>Configuration) that can be used to create a new instance of LIM. The extract also includes several other artifacts though so it may or may not be suitable for your use case.
For derivate formulas I’ve been creating helper accounts (accounts created in LIM NOT in the dim library) that store the calculation results for formula 1 and then referencing the helper account in formula 2. The calc plan will automatically sequence the formulas for you and won’t allow you to create circular formula references. Downside with this approach is you have to bypass all of these helper accounts in the transformation logic for the workflow integration if they truly are helpers and do not needed to be reported on in a cube. Also can pose an extra challenge to filter out these helper accounts in custom reporting built on top of the calc plan.