The airspace in which the mentioned incident took place is not classified B. In fact, no class B airspace exists in Denmark or Sweden at all.
The incident did take place in København TMA (which is airspace class C).
So I would like to know which controller normally gives the clearance to enter class B airspace to a VFR flight?
I don't know how this works in the USA, but in most of the world, it is very easy to figure out which ATC unit is responsible for a specific airspace. All aerodrome specific airspaces, such as control zones, are listed in the appropriate AD 2 section of the AIP. For all other airspaces, including TMA's, you should look at the ENR 2.1 section of the AIP.
If you look up the airspace in question in AIP Denmark, you will see that the responsible ATC unit is Copenhagen APP, specifically the approach east sector (118.450 MHz). So, the specific unit who will give clearances to enter this specific airspace is Copenhagen Approach. There is no general answer to your question, since different procedures are used in different places.
When entering from class E, does the area controller provide the clearance or the approach controller of the airport whose class B it is?
There is no class E airspace to be found around the position of the incident. Plenty of G, though.
The ATC unit responsible for providing service in a certain airspace is the only unit who can give a clearance to enter such airspace. In the specific case, Copenhagen Approach is (naturally) the only unit which can issue a clearance into its airspace. If such a clearance is received by another ATS unit, it has been initially provided by Copenhagen Approach and then forwarded to another unit to pass on to the pilot.
And when the aircraft then crosses from one class B airspace to another?
Again, I think you are assuming that every part of the world works like the USA, which is not the case. What I think you mean is: What happens when an aircraft crosses from one TMA to another? And what you really should be asking is: What happens when an aircraft crosses from one ATC unit area of responsibility to another?
The answer to which is quite simple: the aircraft will be transferred to the next ATC unit, who will then provide appropriate service within its airspace.
So does it make any sense it was (still) talking to Swedish controller (the article is not absolutely clear, but seems to say it was Sweden area, not Malmo approach) while the other flight was talking to Kobenhavn approach?
København TMA - airspace class C - extends from various lower levels to FL195. At the position of the incident, as you have indicated on the chart, the TMA extends from 2500 FT upwards. While Copenhagen Approach provides service within København TMA, service in the airspace below the TMA (which is classified G) is not provided by Copenhagen Approach. Unlike other Danish airports, where the local approach unit will provide service "in, above, below and around" the TMA, Copenhagen Approach is simply too busy dealing with IFR traffic to and from EKCH. Service to traffic below the TMA (which is mainly VFR traffic) is thus provided partly by Malmö ACC (Sweden Control), partly by Copenhagen FIS (Copenhagen Information).
As it so happens, service within Malmö TMA (which is class C, rather than class B as you suggest) is also provided by Sweden Control. There is no approach unit at ESMS - approach control service is provided by Malmö ACC. Therefore, it makes perfect sense that the pilot, coming from the east, was talking to Sweden Control. And since the controllers on the Sweden Control sector had no reason to assume otherwise, they had to believe that the VFR flight in question was in fact below København TMA, in class G airspace, where Copenhagen Approach does not provide service. This is of course not true - the VFR flight was actually in København TMA, for reasons which are beyond the scope of this to discuss - and as such, should have been talking to Copenhagen Approach (and should have been operating a mode C transponder).
At the same time, the IFR arrival (737) was approaching EKCH, within København TMA (class C), and so, was correctly talking to Copenhagen Approach.
What happened then can be read from the incident report. My purpose with this was simply to clear up the misunderstanding concering the airspace in question (which is also what the original question was about).