With this data:

Data Range
A
B
C
1
Mark
6
300
2
Mark
6
200
3
John
10
10
4
Mark
5
3
5
------
------
------


My formula returns 200 and yours returns 0.

I interpreted this condition:

2. Find all rows = Mark, determine the maximum value in Column B.
To mean: max in column B if column A = Mark