\documentclass{article}

\usepackage{mfirstuc}

\begin{document}
%\newcommand*{\test}{\textbf{s}ample phrase}% works
%\newcommand*{\test}{\textbf{s}ample p\textbf{h}rase}% doesn't work
%\newcommand*{\test}{\textbf{s}ample {p}hrase}% doesn't work
\newcommand*{\test}{\textbf{s}ample \textbf{p}hrase}% doesn't work

Tagged text: \test.

First letter uppercase: \xmakefirstuc{\test}.

Title Case: \xcapitalisewords{\test}.

\end{document}
