Kenneth. It is always best to share a link to a sample sheet, being sure to set permission to "Anyone with the link can edit." However, I can tell you that you're going to want your sorting formula to reference the entire column B, not just B2:B. Even with the $ anchor in place (i.e., B$2), when rows are added or deleted, that reference will change.
Again, I don't know how your sheet is set up. But try deleting the entire column where you currently have your formula =sort(Formdata!B$2:B,1,TRUE)
— including the header — and place the following QUERY in the top cell of that column instead:
=QUERY(Formdata!B:B,"Select * Where B Is Not Null Order By B Asc",1)
If you want a different header for your results column than you have in your source column, just modify the end of the QUERY like this:
=QUERY(Formdata!B:B,"Select * Where B Is Not Null Order By B Asc Label B 'My Header'",1)
If you really want to stick with SORT, you can use this (again, in the top cell of a column):
={"My Header";SORT(FILTER(Sheet4!B:B,Sheet4!B:B<>"",ROW(Sheet4!B:B)<>1),1,TRUE)}
If these do not do what you expect them to do, please share an editable link to a sample sheet.