If I eliminate d using the equality constraint, I get
sln = NMaximize[{(a^2 b^2 (1 - k) k)/((-a - b + 12.78` a b - c) c),
0 <= a (1 - k) <= 0.039`,
0 <= a b (1 - k) <= 0.058` (-a - b + 12.78` a b - c), 0 <= k <= 1,
0.1` <= b <= 20, 0.1` <= c <= 20,
0.1` <= -a - b + 12.78` a b - c <= 20}, {a, b, c, k}]
{1.07611, {a -> 0.131768, b -> 20., c -> 0.1, k -> 0.704028}}
which implies d = 13.4482.
If I use MathOptimizer Professional on the original equations (changing the problem to minimization), I get a similar result
In[1]:= Needs["MathOptimizerProLF`callLGO`"]
In[6]:= callLGO[-((a^2 b^2 k (1 - k))/(
c*d)), {a + b + c + d == 12.78*a*b, 0 <= a*(1 - k),
a*(1 - k) <= 0.039,
0 <= (1 - k)*a*b, (1 - k)*a*b <= 0.058*d}, {{a, 0, 1}, {b, .1,
20}, {c, .1, 20}, {d, .1, 20}, {k, 0, 1}}]
Out[6]= {-1.07612, {a -> 0.131769, b -> 20., c -> 0.1, d -> 13.4483,
k -> 0.704027},
"Maximal Constraint Violation" ->
2.36*10^-9, "Function Evaluations -> 10354"}