If string is not very long, you can try brute force: enumerate all substrings and filter out palindromes. Let's implement pure Linq for this:
using System.Linq;
...
string source = "xxyxxz";
var result = Enumerable
.Range(1, source.Length) // all substrings' lengths
.SelectMany(length => Enumerable // all substrings
.Range(0, source.Length - length + 1)
.Select(i => source.Substring(i, length)))
.Where(item => item.SequenceEqual(item.Reverse())) // Linq to test for palindrome
.ToArray(); // Let's have an array of required substrings
// Let's have a look at the result:
Console.Write(string.Join(" ", result));
Outcome:
x x y x x z xx xx xyx xxyxx