У вас есть в руках:
delegate bool FirstMethod(MyClass foo, int integer, string text);
и вы хотите написать метод преобразования, который принимает один из них и возвращает
Func<MyClass, object[], bool>
Это просто:
static Func<MyClass, object[], bool> Convert(FirstMethod f) =>
(m, o) => f(m, (int)o[0], (string)o[1]);
Готово. Просто сделайте это для каждого типа делегата, который вы хотите преобразовать.
Вы можете даже сделать это методом расширения, если хотите.