Here is my updated code to see if this helps people. It still doesn't yield the required results but the algorithm follows the same procedure as in the paper.
zero = 10^-10;
inf = 10^9;
ref = inf - 10^-3;
\[Delta] = 0.01;
DU = Re[D[
1/4 y[x]^4*(\[Gamma] + \[Alpha]*(Log[y[x]])^2 + \[Beta]*(Log[
y[x]])^4), y[x]]];
eqn = y''[x] + 3 y'[x]/x == DU;
B = 0.070;
n = 0;
k = 1;
\[Epsilon] = 10^-10;
\[CapitalDelta] = 1;
\!\(\*OverscriptBox[\(\[CapitalDelta]\), \(~\)]\) = 1;
Bvalues = {};
absdiffvalues = {};
While[
\!\(\*OverscriptBox[\(\[CapitalDelta]\), \(~\)]\) > \[Epsilon],
eqn0 = B +
B^3/8*(\[Gamma] + (\[Alpha]/2)*
Log[B] + \[Alpha]*(Log[B])^2 + \[Beta]*(Log[
B])^3 + \[Beta]*(Log[B])^4) x^2;
initialcon1 = eqn0 /. x -> zero;
initialcon2 = D[eqn0, x] /. x -> zero;
sol = NDSolve[{y''[x] + 3 y'[x]/x == DU, y[inf] == 0,
y'[zero] == 0}, y[x], {x, zero, inf},
Method -> {"BoundaryValues" -> {"Shooting",
"StartingInitialConditions" -> {y[zero] == initialcon1,
y'[zero] == initialcon2}}}];
x2sol = x^2*y[x] /. (First@sol);
\[CapitalDelta] = (x2sol /. x -> inf) - (x2sol /. x -> ref);
\!\(\*OverscriptBox[\(\[CapitalDelta]\), \(~\)]\) =
Abs[\[CapitalDelta]];
AppendTo[absdiffvalues,
\!\(\*OverscriptBox[\(\[CapitalDelta]\), \(~\)]\)];
If[n >= 3,
B0 = Part[Bvalues, n];
B1 = Part[Bvalues, n - 1];
B2 = Part[Bvalues, n - 2]
];
If[\[CapitalDelta] > \[Epsilon],
If[B1 <= B0 <= B2 ,
k++;
B += \[Delta]/(k*10);
];,
B += \[Delta]/(k*10);
];
If[\[CapitalDelta] < -\[Epsilon],
If[B2 <= B0 <= B1 ,
k++;
B -= \[Delta]/(k*10);
];,
B -= \[Delta]/(k*10);
];
AppendTo[Bvalues, B];
n++;
If[Divisible[n, 500],
Print[n];
Print[\[CapitalDelta]];
Print[B];
Print[k];
Print[initialcon1];
Print[initialcon2];
];
];
Any help with this problem would still be greatly appreciated.