Второй аргумент в Substring
- это длина строки для выбора, а не индекс для выбора до.
Поскольку ваши аргументы равны 58 и 94, выпытаясь выбрать из индекса 58 для 94 символов , который выходит за пределы длины вашей строки.
Чтобы выбрать между двумя индексами, найдите разницу между ними и используйте ее для длины довыберите:
int p1 = parameters.IndexOf(@">");
Console.WriteLine("p1 = " + p1);
int p2 = parameters.IndexOf(@"<", parameters.IndexOf(@"<") + 1);
Console.WriteLine("p2 = " + p2);
Console.ReadKey();
string parametersSub = parameters.Substring(p1, p2 - p1);
Console.WriteLine("parametersSub: " + parametersSub);
Конечно, вы все равно должны проверить, что и начальный индекс, и длина находятся в пределах строки.