My Work Around
Instead of a collections I created Variable Tables. Happened by accident and they work. Stakeholders kept changing how they wanted things named, from lists to column names to lookup items. So I put everything in OnStart and can all be changed from there so none of my code breaks.
example
Set(varListName, 'ListName')
There were only a few places in my app that I actually needed to create a collection. One is where I needed to add the "New" item selection to a combo box
For that I did
ClearCollect(collectListName, varListName ); //Where varListName is created in OnStart from the SP list
Collect(collectListName, { Title: "New", ID: 0 }
Also if you need to use collections you can also assign a dummy variable like
ClearCollect(collectListName, ListName ); Set(varCollectListName,Blank()))
and that way you will always find the collection
Hope that helps someone