Not so much an array as a custom object, then.
The simplest approach is to modify the string so that ConvertFrom-StringData can parse it. This means replacing the first : on every line with an = sign.
$ObjectData = $String -replace '^(?<=[^:]+):','=' | ConvertFrom-StringData
Do note that for whatever reason this forum inserts a space between the < and = characters; please remove that before use. It's not meant to be there!
That regex expression broken apart goes like this:
^ -- anchor to the beginning of the line
(?<= -- lookbehind; this is used to locate the rest of the match but will not be replaced
[^:]+ -- Match any number of characters that are NOT the ':' character
) -- End lookahead. Up to here, we're saying "ensure there are no : before this next part"
: -- Match the ':' character (combined with the lookbehind, this will get only the first one)
Only the : character gets replaced, but it’s anchored to the beginning of each line such that subsequent ones aren’t touched.