I offered a simple approach (that even works with the free Asana Basic plan) here, based on a several-years-old Asana version:
Your needs are specific and comprehensive enough that you may want to work with an Asana Services or Solution Partner to be sure all the bases are covered, but perhaps someone will offer their assistance here.