Want an advice from a pro? Stick with Cloudformation (CFN). Split stuff smartly between stacks. Use Outputs export/import. This is default IaaC way in AWS. I would not touch anything else, rather insist on full rewrite. Reuse templates using Parameters. Stack can be rolled-back, checked for drift, checked for changes before changes and so on.
CFN has the least LOC between them all and is easy to create in your text editor.
Just don’t use nested stacks :) oh, and multi-cloud is an urban legend, myth.