For anyone that comes across this looking for the same answer, I never did come across how to change the sort/filter logic.
What I ended up doing was modifying my Stored Procedure that returns the data.
Instead of pulling from just the one table, I joined 4 tables and returned all the columns I needed.
So instead of calling a function to display the data in an ItemTemplate/GridTemplateColumn, I can now just use a BoundField/GridBoundColumn and display straight from each of the tables.
This allows the sort & filter to work without modification.