Answering your questions in the way you have asked them:
"is there anything wrong with having a ton of columns on your table in this situation?"
There is absolutely nothing wrong with storing the data in this way. You can have many more than you are proposing here without any trouble.
"Is this better than the former approach?"
This is how I do these things but it is because it suits the way I manage this sort of data and not a case of being better or right. There is an argument that has been put forward by Branko that this is not 1NF and he is completely correct, but even proponents of normalisation accept that there are times that normalisation isn't always the best way to go and sometimes you need to denormalise to get better performance.
Pros of having seperate BITs:
You can reference each property (column) in SQL queries and be sure that you are selecting the correct bit otherwise you need to keep referring to your enumerator in your application code to know what each bit means in the SQL Table.
You can automatically populate an entity object easier.
Reports etc can use these settings without having to do any computation to get the value of seperate settings.
Correct normalisation.
Pros of having it all in one column (flags) (or more than one if you need more storage):
You can read and write the settings as a group much easier and quicker.
Your SQL queries that manipulate or read the settings will be quicker to write.
You can itterate the settings collection with less code.
writting and maintaining your own entity object is easier.
Less memory usage (but to be fair this will be low regardless of the approach you use).
Much smaller payload if you wanted to put it into the session object.
The only consideration I would say is that once your total number of flags exceed the total memory space you can get from one variable (2^64) you lose some of the pros for using flags as your data then has to be spread across multiple columns regardless of the approach you use.