How to make the columns in ag-grid to autosize based on the content of the cell however we still the header to be completely visible?

columnSize='autoSize' performs an api call and then gets set to None, this is why the columnSize will need to be provided again.

As far as what you are describing, I am unsure how to troubleshoot without seeing some code or a video of it.

Here is an example of adding eventListeners to a Grid:

These should work with any layout that you are describing.