Here's what I've come up with, I'm not sure what are you trying to do exactly.
[TestFixture]
public class CallChain
{
    [Test]
    public void Test()
    {
        var mockery = new MockRepository();
        var repository = mockery.DynamicMock<IRepository>();
        var findMock = mockery.DynamicMock<IFindQueryPart>();
        var orderMock = mockery.DynamicMock<IOrderQueryPart>();
        var groupMock = mockery.DynamicMock<IGroupQueryPart>();
        var returnedItemsStub = new ArrayList();
        var mocks = new object[] { groupMock, orderMock, findMock, repository };
        var methods = MethodsFromLambda(repo => repo.Find(null)
                                                 .Order(null)
                                                 .Group(null)
                                                 .All()).ToList();
        using (mockery.Record())
        {
            for (var i = methods.Count - 1; i > 0; i--)
                SetupResult.For(methods[i].Invoke(mocks[i], new object[] {null}))
                    .IgnoreArguments()
                    .Return(mocks[i - 1]);
            SetupResult.For(methods[0].Invoke(groupMock, null)).IgnoreArguments().Return(returnedItemsStub);
        }
        using (mockery.Playback())
        {
            var returnedItems = repository.Find(null)
                .Order(null)
                .Group(null)
                .All();
            Assert.That(returnedItems, Is.EqualTo(returnedItemsStub));
        }
    }
    private static IEnumerable<MethodInfo> MethodsFromLambda(Expression<Action<IRepository>> expr)
    {
        var body = expr.Body as MethodCallExpression;
        while (body != null)
        {
            yield return body.Method;
            body = Expression.Lambda<Action<IRepository>>(body.Object, expr.Parameters).Body as MethodCallExpression;
        }
    }
}
public interface IRepository
{
    IFindQueryPart Find(object o);
}
public interface IFindQueryPart
{
    IOrderQueryPart Order(object order);
}
public interface IOrderQueryPart
{
    IGroupQueryPart Group(object projection_for_group);
}
public interface IGroupQueryPart
{
    ArrayList All();