> So I guess my performance impact comes down to the following

Since your question is about performance I advise you to start using performance tools that you already have at your disposal to dig into this problem. This way your *guess* will be more precise or better yet: you won't have to guess at all.

[Display an Actual Execution Plan](https://learn.microsoft.com/en-us/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15)

[SET STATISTICS TIME (Transact-SQL)](https://learn.microsoft.com/en-us/sql/t-sql/statements/set-statistics-time-transact-sql?view=sql-server-ver15)

[SET STATISTICS IO (Transact-SQL)](https://learn.microsoft.com/en-us/sql/t-sql/statements/set-statistics-io-transact-sql?view=sql-server-ver15)

If after using these tools you are not able to figure out your answer, update your questions adding their result plus the function code and we'll try to help you further.

> However, do you know if anything I can do in the group by part of the
> query to reduce the delays?

Without your actual code it's not possible to help very much.

> Is this function being called twice because I have it in the select
> and the group by portion of my query?

It can be verified on the execuion plan.