Well don't I feel silly, turns out it was a player voice issue. I missed this error due to all the other errors being spammed:
EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at PhraseSpeakerClass.Init (EFT.EPlayerSide side, System.Int32 id, System.String playerVoice, System.Boolean registerInSpeakerManager) [0x0002c] in <448e567fc8c849f8a66327014c6f134c>:0
at EFT.Player+Struct232.MoveNext () [0x00545] in <448e567fc8c849f8a66327014c6f134c>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
at EFT.LocalPlayer+Struct441.MoveNext () [0x001aa] in <448e567fc8c849f8a66327014c6f134c>:0
2024-04-14 01:56:48.894 +10:00|0.14.1.2.29197|Error|Default|
I just set my voice in the sound settings menu and it fixed it. I'm unsure if this is caused by WTT - Head and Voice Selector, or just straight up user error.
Anyway, issue is resolved and the profile appears to still be working.